隨著公司的發(fā)展和部門整合岛请,業(yè)務(wù)模塊不斷增加沫浆,所有部門的iOS客戶端也被統(tǒng)一管理,為了解決耦合嚴(yán)重斩萌,代碼統(tǒng)一缝裤,所以組件化開發(fā)必不可少。
使用組件的目的其實(shí)就是為了將相同的非業(yè)務(wù)的代碼提取出來以供不同業(yè)務(wù)組進(jìn)行使用的一套底層工具颊郎。下面我們直接進(jìn)入到正題憋飞,看看組件化開發(fā)的流程。
一姆吭、創(chuàng)建私有庫(kù)索引
首先在碼云上建立一個(gè)私有庫(kù)索引榛做,起名為CCComponentSpec
,如圖:
點(diǎn)擊創(chuàng)建按鈕内狸,創(chuàng)建完成检眯,如圖:
至此,創(chuàng)建私有庫(kù)索引完成昆淡,其實(shí)跟創(chuàng)建一個(gè)項(xiàng)目是一毛一樣的锰瘸。。昂灵。
二避凝、本地添加私有庫(kù)索引
1.查看本地索引庫(kù)
打開terminal舞萄,輸入命令 pod repo
,查看到本地的公有索引庫(kù)管削,如下圖:
2.添加私有庫(kù)索引
輸入命令
pod repo add CCComponentSpec https://gitee.com/captain-gao/CCComponentSpec.git
再次查看本地索引庫(kù)就會(huì)發(fā)現(xiàn)剛剛創(chuàng)建的遠(yuǎn)程索引庫(kù)被添加到了本地倒脓,如圖:
三、創(chuàng)建基礎(chǔ)組件庫(kù)
1.根據(jù)步驟一中的方法含思,在碼云上創(chuàng)建組件庫(kù)崎弃,命名為CCBasicComponents
,如圖:
2.創(chuàng)建CCBasicComponents本地庫(kù)
在terminal中cd到桌面含潘,并調(diào)用命令饲做,然后根據(jù)自身需要回答問題進(jìn)行配置即可,如圖:
最后遏弱,項(xiàng)目本地組件庫(kù)創(chuàng)建完成后會(huì)自動(dòng)打開項(xiàng)目艇炎。下面我們可以向組件庫(kù)中添加公共組件類。
3.添加公共組件類
- Assets文件夾:內(nèi)部放資源文件腾窝,例如圖片,xib居砖,Storyboard等虹脯。
- Classes文件夾:顧名思義,類文件夾奏候,放的都是類文件循集,也就是我們說的公有組件。
4.安裝
通過命令pod install
安裝
- 不知道為什么我的電腦每次執(zhí)行完pod install之后都會(huì)有這個(gè)XCode意外退出的彈窗蔗草,不過沒什么影響咒彤,重新打開就ok了。
5.修改.podspec文件
.podspec文件修改完成如圖:
四咒精、關(guān)聯(lián)組件代碼
1.將組件代碼關(guān)聯(lián)到倉(cāng)庫(kù)
在terminal中依次執(zhí)行下面的命令
git add .
git commit -m "關(guān)聯(lián)組件代碼"
git remote add origin https://gitee.com/captain-gao/CCBasicComponents.git
git push -f origin master
- 至此镶柱,組件代碼和遠(yuǎn)程倉(cāng)庫(kù)關(guān)聯(lián)完成。
2.打tag并上傳到git
-
注:所打的tag要和.podspec中的s.version保持一致模叙,否則歇拆,后面不能通過遠(yuǎn)程驗(yàn)證。
下面我們?nèi)ミh(yuǎn)程私有庫(kù)去看下這個(gè)tag是否創(chuàng)建成功
五范咨、驗(yàn)證
1.本地驗(yàn)證
pod lib lint --sources='[spec遠(yuǎn)端路徑],https://github.com/CocoaPods/Specs.git' --allow-warnings
驗(yàn)證成功 CCBasicComponents passed validation
.
2.遠(yuǎn)程驗(yàn)證
pod spec lint --sources='[spec遠(yuǎn)端路徑],https://github.com/CocoaPods/Specs.git' --allow-warnings
驗(yàn)證成功
- 注:在遠(yuǎn)程驗(yàn)證會(huì)驗(yàn)證遠(yuǎn)程tag下面的tag的編號(hào)和所有的組件故觅,tag必須要相同才能通過,另渠啊,組件更新后需要重新傳到遠(yuǎn)程tag下输吏,否則也會(huì)驗(yàn)證失敗。
六替蛉、提交.podspec文件
pod repo add CCComponentSpec [spec遠(yuǎn)端路徑]
pod repo push CCComponentSpec CCBasicComponents.podspec --allow-warnings --sources="[spec遠(yuǎn)端路徑],https://github.com/CocoaPods/Specs"
最后我們來到碼云的私有索引庫(kù)可以看到組件已經(jīng)上傳成功
七贯溅、驗(yàn)證組件
pod search 'CCBasicComponents'
- 至此拄氯,組件即可以使用了。
八盗迟、更新組件
1.向組件庫(kù)中添加類CCTools
坤邪,如圖:
2.向遠(yuǎn)程倉(cāng)庫(kù)更新代碼
git add .
git commit -m "創(chuàng)建新組建CCTools"
git push origin master
3.更新tag版本
修改podspec文件,將s.version = '0.1.0'改為s.version = '0.2.0'罚缕,
然后命令行輸入命令:
git tag -a '0.2.0' -m '新版本0.2.0'
git push --tags
這時(shí)候我們?nèi)ゲ榭催h(yuǎn)程倉(cāng)庫(kù)艇纺,就會(huì)發(fā)現(xiàn)有兩個(gè)tag
最后像步驟五一樣進(jìn)行本地和遠(yuǎn)程驗(yàn)證。
4.更新索引庫(kù)
pod repo push CCComponentSpec CCBasicComponents.podspec
九邮弹、使用組件
1.創(chuàng)建一個(gè)新項(xiàng)目黔衡,并創(chuàng)建podfile文件
pod init
2.添加引用和組件,如圖:
3.安裝組件
pod install
4.安裝完成腌乡,如圖:
踩坑1:CDN: trunk Repo update failed - 2 error(s):
https://github.com/CocoaPods/CocoaPods/issues/9303