国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

iOS 搭建組件化私有庫(kù)

這篇具有很好參考價(jià)值的文章主要介紹了iOS 搭建組件化私有庫(kù)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一、創(chuàng)建私有庫(kù)索引

步驟1是在沒(méi)有索引庫(kù)的情況下或者是新增索引的時(shí)候才需要用到(創(chuàng)建基礎(chǔ)組件庫(kù))
首先在碼云上建立一個(gè)私有庫(kù)索引,起名為SYComponentSpec

ios私有庫(kù)創(chuàng)建,iOS開(kāi)發(fā)筆記,iOS,spec,cocoapods,本地私有庫(kù)

二、本地添加私有庫(kù)索引

添加私有庫(kù)索引

pod repo add SYComponentSpec https://gitee.com/sun-shiyu/sycomponent-spec

ios私有庫(kù)創(chuàng)建,iOS開(kāi)發(fā)筆記,iOS,spec,cocoapods,本地私有庫(kù)

ios私有庫(kù)創(chuàng)建,iOS開(kāi)發(fā)筆記,iOS,spec,cocoapods,本地私有庫(kù)

三、創(chuàng)建基礎(chǔ)組件庫(kù)

當(dāng)你需要新建組件的時(shí)候,就在這里開(kāi)始,如果是想修改原有的庫(kù),就可以直接在之前的組件倉(cāng)庫(kù)里面修改即可

1.在碼云上創(chuàng)建組件庫(kù)
命名為SYBasicComponents,如圖:

ios私有庫(kù)創(chuàng)建,iOS開(kāi)發(fā)筆記,iOS,spec,cocoapods,本地私有庫(kù)
2.創(chuàng)建SYBasicComponents本地庫(kù)
默認(rèn)創(chuàng)建路徑:/Users/sunshiyu/SYBasicComponents 。

pod lib create SYBasicComponents

ios私有庫(kù)創(chuàng)建,iOS開(kāi)發(fā)筆記,iOS,spec,cocoapods,本地私有庫(kù)
最后,項(xiàng)目本地組件庫(kù)創(chuàng)建完成后會(huì)自動(dòng)打開(kāi)項(xiàng)目。

3.在私有庫(kù)導(dǎo)入自己的代碼

Classes文件夾下面的ReplaceMe.m文件刪除掉,替換成你要上傳私有庫(kù)的代碼,這里導(dǎo)入簡(jiǎn)單的兩個(gè)測(cè)試文件:

// SYLog.h
+ (void)logger;
// SYLog.m
+ (void)logger {
    NSLog(@"-------- Log --------");
}

ios私有庫(kù)創(chuàng)建,iOS開(kāi)發(fā)筆記,iOS,spec,cocoapods,本地私有庫(kù)

4.更新這個(gè)工程的pod庫(kù)

  1. cdExample文件下
  2. 執(zhí)行 pod install
    ios私有庫(kù)創(chuàng)建,iOS開(kāi)發(fā)筆記,iOS,spec,cocoapods,本地私有庫(kù)

5.修改.podspec文件
ios私有庫(kù)創(chuàng)建,iOS開(kāi)發(fā)筆記,iOS,spec,cocoapods,本地私有庫(kù)
ios私有庫(kù)創(chuàng)建,iOS開(kāi)發(fā)筆記,iOS,spec,cocoapods,本地私有庫(kù)
有兩個(gè)屬性需要注意改下:
s.homepage:私有代碼倉(cāng)庫(kù)的地址 https://gitee.com/sun-shiyu/sybasic-components
s.source:私有代碼倉(cāng)庫(kù)的源地址 https://gitee.com/sun-shiyu/sybasic-components.git

其他屬性根據(jù)需要自行配置。

6.將私有庫(kù)push到遠(yuǎn)程倉(cāng)庫(kù)

注意遠(yuǎn)端需要有個(gè)master分支,這里先創(chuàng)建一個(gè)master分支:

 cd /Users/sunshiyu/SYBasicComponents 
git branch master
git checkout master

ios私有庫(kù)創(chuàng)建,iOS開(kāi)發(fā)筆記,iOS,spec,cocoapods,本地私有庫(kù)

commit代碼到本地然后push到遠(yuǎn)端:

 git branch (檢查當(dāng)前所在分支)
git status (查看當(dāng)前git存了什么文件)
git add . (將所有文件緩存到待提交文件區(qū)域)
git commit -m "上傳組件"
git remote add origin https://gitee.com/sun-shiyu/sybasic-components.git  (私有庫(kù)git倉(cāng)庫(kù)地址)
git push -f origin master (將代碼推送到遠(yuǎn)程私有庫(kù)git倉(cāng)庫(kù)的master分支上面已經(jīng)創(chuàng)建了)
git tag 0.1.0 (這里的版本號(hào)必須和podspec里面寫(xiě)的版本號(hào)一致)
git push -- tags (提交tag)

ios私有庫(kù)創(chuàng)建,iOS開(kāi)發(fā)筆記,iOS,spec,cocoapods,本地私有庫(kù)
7.本地和遠(yuǎn)程校驗(yàn)

1.本地校驗(yàn),在當(dāng)前私有庫(kù)目錄下,輸入命令:

pod lib lint --private --allow-warnings

ios私有庫(kù)創(chuàng)建,iOS開(kāi)發(fā)筆記,iOS,spec,cocoapods,本地私有庫(kù)
校驗(yàn)成功:SYBasicComponents passed validation.

2.遠(yuǎn)程驗(yàn)證,在當(dāng)前私有庫(kù)目錄下,輸入命令:

pod spec lint --private --allow-warnings

ios私有庫(kù)創(chuàng)建,iOS開(kāi)發(fā)筆記,iOS,spec,cocoapods,本地私有庫(kù)
校驗(yàn)成功:SYBasicComponents.podspec passed validation.

8.提交索引文件到遠(yuǎn)程索引庫(kù)

1.所有驗(yàn)證通過(guò)之后,要將spec文件推送到最開(kāi)始創(chuàng)建的私有庫(kù)索引庫(kù)當(dāng)中

cd 到私有庫(kù)項(xiàng)目目錄,
pod repo push <本地索引庫(kù)名稱> <索引文件名> --allow-warnings
<本地索引庫(kù)名稱>在 /Users/sunshiyu/.cocoapods/repos 下的私有庫(kù)索引項(xiàng)目名稱
<索引文件名>就是以 podspec 結(jié)尾的,注意不要弄錯(cuò)

例如輸入命令:

pod repo push SYComponentSpec SYBasicComponents.podspec --allow-warnings

ios私有庫(kù)創(chuàng)建,iOS開(kāi)發(fā)筆記,iOS,spec,cocoapods,本地私有庫(kù)
2.推送去之后,在本地索引庫(kù)中查看如下圖??????????????:
ios私有庫(kù)創(chuàng)建,iOS開(kāi)發(fā)筆記,iOS,spec,cocoapods,本地私有庫(kù)

getee 遠(yuǎn)端查看如下圖:

ios私有庫(kù)創(chuàng)建,iOS開(kāi)發(fā)筆記,iOS,spec,cocoapods,本地私有庫(kù)

四、使用基礎(chǔ)組件庫(kù)

隨便創(chuàng)建一個(gè)項(xiàng)目名為 SYSpecDemo ,初始化 pod

 cd /Users/sunshiyu/Desktop/SYSpecDemo
pod init
pod install

打開(kāi)編輯 podfile 文件

open podfile

如下:

# Uncomment the next line to define a global platform for your project
platform :ios, '11.0'

# source 添加對(duì)應(yīng)的索引庫(kù),否則會(huì)pod install失敗
source 'https://gitee.com/sun-shiyu/sycomponent-spec.git'

target 'SYSpecDemo' do
  # Comment the next line if you don't want to use dynamic frameworks
  use_frameworks!

  # Pods for SYSpecDemo
  
  # pod 對(duì)應(yīng)組件,可以對(duì)應(yīng)版本
  pod 'SYBasicComponents'

end

再次:

pod install

就可以看到這個(gè)庫(kù):
ios私有庫(kù)創(chuàng)建,iOS開(kāi)發(fā)筆記,iOS,spec,cocoapods,本地私有庫(kù)

導(dǎo)入頭文件使用該庫(kù):

#import <SYBasicComponents/SYLog.h>

// 打印 log 
[SYLog logger];

五、組件庫(kù)依賴第三方庫(kù)

如果我們的組件庫(kù)需要依賴第三方庫(kù),例如 AFNetWorking、YYModel 等,操作如下:

1.修改組件庫(kù)的 SYBasicComponents.podspec 文件,添加依賴:
ios私有庫(kù)創(chuàng)建,iOS開(kāi)發(fā)筆記,iOS,spec,cocoapods,本地私有庫(kù)

然后組件庫(kù)執(zhí)行 Example 項(xiàng)目 執(zhí)行 pod install。

2.同上面第6步,將組件庫(kù)修改的代碼提到遠(yuǎn)端。記住一定要記得打 tag,且要與索引庫(kù)的 version 保持一致 。

ios私有庫(kù)創(chuàng)建,iOS開(kāi)發(fā)筆記,iOS,spec,cocoapods,本地私有庫(kù)

git tag 0.2.0 (這里的版本號(hào)必須和podspec里面寫(xiě)的版本號(hào)一致)
git push -- tags (提交tag)

3.提交索引庫(kù)遠(yuǎn)端,同上面的第8步:

pod repo push SYComponentSpec SYBasicComponents.podspec --allow-warnings

4.修改主項(xiàng)目的 podfile 文件,加入 github CocoaPods 索引庫(kù),用來(lái)加載github三方庫(kù)的:

source 'https://github.com/CocoaPods/Specs.git'

ios私有庫(kù)創(chuàng)建,iOS開(kāi)發(fā)筆記,iOS,spec,cocoapods,本地私有庫(kù)

然后執(zhí)行 pod install。

以上是使用 pod 'SYBasicComponents' 的方式使用組件庫(kù),也就是遠(yuǎn)程的方式,這種方式需要沒(méi)更新組件庫(kù)后都要打 tag 以及修改 specversion,然后修改主項(xiàng)目的 podfile 文件(根據(jù)情況也可能不需要要修改),最后主項(xiàng)目重新 pod install 。這樣就能得到遠(yuǎn)程組件庫(kù)最新的代碼,缺點(diǎn)是主項(xiàng)目每次想更新組件庫(kù)的最近代碼都需要組件庫(kù)打 tag 更新組件庫(kù)的版本,如何實(shí)現(xiàn)只要組件庫(kù)有代碼更新,主項(xiàng)目直接拉最新的代碼呢?答案是引用本地索引庫(kù)的方式,我們只需要修改主項(xiàng)目的 podfile 文件如下:

# Uncomment the next line to define a global platform for your project
platform :ios, '11.0'

# source 添加對(duì)應(yīng)的索引庫(kù),否則會(huì) pod install 失敗
# source 'https://gitee.com/sun-shiyu/sycomponent-spec.git'
source 'https://github.com/CocoaPods/Specs.git'

target 'SYSpecDemo' do
  # Comment the next line if you don't want to use dynamic frameworks
  use_frameworks!

  # Pods for SYSpecDemo
  
  # pod 對(duì)應(yīng)組件,可以對(duì)應(yīng)版本
  
  # 方式一、引用遠(yuǎn)端組件庫(kù)
  # pod 'SYBasicComponents'
  
  # 方式二:引用本地組件庫(kù),不需要 source 'https://gitee.com/sun-shiyu/sycomponent-spec.git'
  pod 'SYBasicComponents', :path => '~/SYBasicComponents/'
 
end

即使用 pod 'SYBasicComponents', :path => '~/SYBasicComponents/' 的方式來(lái)直接引用本地組件庫(kù)的代碼,這樣拉代碼每次都是最新的。我們 pod install 試試看,Pods 目錄結(jié)構(gòu)變?nèi)缦聢D所示:

ios私有庫(kù)創(chuàng)建,iOS開(kāi)發(fā)筆記,iOS,spec,cocoapods,本地私有庫(kù)
本地組件庫(kù) SYBasicComponents 里面就是最新的代碼了。因?yàn)槲覀兊慕M件庫(kù)依賴了 AFNetworking YYModel,所以Pods中出現(xiàn)了這兩個(gè)庫(kù)。

結(jié)束!?。?/strong>

參考:
iOS私有庫(kù)搭建
iOS組件化搭建私有庫(kù)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-673835.html

到了這里,關(guān)于iOS 搭建組件化私有庫(kù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 組件化開(kāi)發(fā)之如何封裝組件-react

    組件是構(gòu)建用戶界面的基本單元,它是一個(gè)獨(dú)立的、可重用的、可組合的代碼單元,用于表示UI的一部分。 人話:當(dāng)談?wù)摻M件時(shí),就像在搭積木一樣,每個(gè)組件都是一個(gè) 獨(dú)立的、可以重復(fù)使用 的代碼塊,用來(lái)構(gòu)建網(wǎng)頁(yè)或應(yīng)用的各個(gè)部分。比如界面的布局,像按鈕、文本輸入

    2024年02月11日
    瀏覽(21)
  • 小程序組件化開(kāi)發(fā)

    小程序組件化開(kāi)發(fā)

    ????隨著小程序的普及,越來(lái)越多的開(kāi)發(fā)者開(kāi)始使用小程序進(jìn)行開(kāi)發(fā),而小程序的組件化開(kāi)發(fā)已經(jīng)成為了一種標(biāo)配的開(kāi)發(fā)模式。本文將深入介紹小程序組件化開(kāi)發(fā)的相關(guān)知識(shí),包括組件的定義、生命周期、通信和使用等方面,幫助大家更好地理解和使用小程序的組件化開(kāi)發(fā)

    2023年04月20日
    瀏覽(23)
  • Vue 組件化開(kāi)發(fā)

    Vue 組件化開(kāi)發(fā)

    提示:這里可以添加本文要記錄的大概內(nèi)容: Vue.js 是一種現(xiàn)代化的前端框架,可以用于構(gòu)建可復(fù)用的組件化應(yīng)用程序。Vue.js 提供了一種基于組件的架構(gòu),使得開(kāi)發(fā)人員可以將應(yīng)用程序分解為多個(gè)可重用的組件。 Vue.js 組件是一個(gè)可復(fù)用的代碼模塊,可以在 Vue.js 應(yīng)用程序中使

    2024年02月15日
    瀏覽(20)
  • 組件化開(kāi)發(fā)復(fù)習(xí)

    組件化開(kāi)發(fā)復(fù)習(xí)

    createApp 函數(shù)傳入了一個(gè)對(duì)象 App ,這個(gè)對(duì)象其實(shí)本質(zhì)上就是一個(gè)組件,也是我們應(yīng)用程序的根組件 可以寫(xiě)為:? 我們先來(lái)學(xué)習(xí)一下全局組件的注冊(cè): ? 全局組件需要使用我們?nèi)謩?chuàng)建的 app 來(lái)注冊(cè)組件; ? 通過(guò) component 方法傳入組件名稱、組件對(duì)象即可注冊(cè)一個(gè)全局組件了;

    2024年02月15日
    瀏覽(22)
  • 小程序的組件化開(kāi)發(fā)

    小程序的組件化開(kāi)發(fā)

    目錄: 1 小程序組件化思想 2 自定義組件的過(guò)程 3 組件樣式實(shí)現(xiàn)細(xì)節(jié) 4 組件使用過(guò)程通信 5 組件插槽定義使用 6 Component構(gòu)造器 在小程序里面需要?jiǎng)?chuàng)建組件的話需要在最外層建component包,然后在使用新建component來(lái)創(chuàng)建類(lèi)似page的4個(gè)文件: 組件和頁(yè)面的區(qū)別就是,組件文件會(huì)有額

    2024年02月10日
    瀏覽(23)
  • react組件化開(kāi)發(fā)詳解

    React是一個(gè)流行的JavaScript庫(kù),用于構(gòu)建用戶界面,并且以組件化的方式進(jìn)行開(kāi)發(fā)。下面將詳解React組件化開(kāi)發(fā)的概念和步驟: 組件化思維: 組件化開(kāi)發(fā)是將復(fù)雜的用戶界面劃分為獨(dú)立、可重用的小部件(組件)。每個(gè)組件負(fù)責(zé)處理自己的邏輯和渲染,可以嵌套和組合其他組件

    2024年02月12日
    瀏覽(28)
  • HarmonyOS開(kāi)發(fā):探索組件化模式開(kāi)發(fā)

    HarmonyOS開(kāi)發(fā):探索組件化模式開(kāi)發(fā)

    組件化一直是移動(dòng)端比較流行的開(kāi)發(fā)方式,有著編譯運(yùn)行快,業(yè)務(wù)邏輯分明,任務(wù)劃分清晰等優(yōu)點(diǎn),針對(duì)Android端的組件化,之前有比較系統(tǒng)的總結(jié)過(guò)相關(guān)文章,感興趣的朋友,可以查看,點(diǎn)擊直達(dá);與Android端的組件化相比,HarmonyOS的組件化可以說(shuō)實(shí)現(xiàn)起來(lái)就頗費(fèi)一番周折,

    2024年02月08日
    瀏覽(18)
  • Vue開(kāi)發(fā)實(shí)戰(zhàn)(03)-組件化開(kāi)發(fā)

    Vue開(kāi)發(fā)實(shí)戰(zhàn)(03)-組件化開(kāi)發(fā)

    對(duì)組件功能的封裝,可以像搭積木一樣開(kāi)發(fā)網(wǎng)頁(yè)。 Vue官方的示例圖對(duì)組件化開(kāi)發(fā)的形象展示。左邊是一個(gè)網(wǎng)頁(yè),可以按照功能模塊抽象成很多組件,這些組件就像積木一樣拼接成網(wǎng)頁(yè)。 [外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來(lái)直接上傳(img-aS7Zk8tp-16862

    2024年02月08日
    瀏覽(20)
  • 【Vue】Vite 組件化開(kāi)發(fā)

    【Vue】Vite 組件化開(kāi)發(fā)

    1. 什么是組件化開(kāi)發(fā) 組件化開(kāi)發(fā)指的是:根據(jù)封裝的思想,把頁(yè)面上可重用的部分封裝為組件,從而方便項(xiàng)目的開(kāi)發(fā)和維護(hù)。 例如:https://gitee.com/vdpadmin/variant-form 所展示的效果,就契合了組件化開(kāi)發(fā)的思想。用戶可以通過(guò)拖拽組件的方式,快速生成一個(gè)頁(yè)面的布局結(jié)構(gòu)。

    2024年02月10日
    瀏覽(22)
  • 【前端知識(shí)】React 基礎(chǔ)鞏固(十九)——組件化開(kāi)發(fā)(三)

    Main.jsx TabControl/index.jsx TabControl/style.css

    2024年02月13日
    瀏覽(28)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包