將一個(gè)項(xiàng)目組件化拆分掉俐筋,一般會(huì)拆分一些基礎(chǔ)組件、一些功能組件和業(yè)務(wù)組件严衬。將拆分好的組件放到遠(yuǎn)程倉(cāng)庫(kù)澄者,統(tǒng)一通過(guò)Cocoapods進(jìn)行管理。當(dāng)然请琳,要實(shí)現(xiàn)這個(gè)管理的過(guò)程粱挡,有一些概念還是必須知道的。
如上圖所示:遠(yuǎn)程索引庫(kù)俄精、本地索引庫(kù)询筏、遠(yuǎn)程代碼庫(kù)、本地代碼庫(kù)竖慧。筆者通過(guò)拆分demo 中的一個(gè)category的基礎(chǔ)組件說(shuō)明上面的四個(gè)概念嫌套。
第一步:基礎(chǔ)組件Category
一逆屡、遠(yuǎn)程索引庫(kù) 什么是遠(yuǎn)程索引庫(kù)? ? ??
? ? 每創(chuàng)建一個(gè)組件都會(huì)帶有一個(gè)?xxx.podspec 的索引文件踱讨。專(zhuān)門(mén)用來(lái)存放這些索引文件的庫(kù)就叫做索引庫(kù)魏蔗。我們需要將這些索引文件上傳到遠(yuǎn)程索引庫(kù)才能保證其他的同事能夠拿來(lái)用。
二痹筛、 本地索引庫(kù) (本地索引庫(kù)就是用來(lái)存放本地索引文件的庫(kù))
1. 打開(kāi)終端 pod repo 查看一下當(dāng)前有哪些本地索引庫(kù)(如果你之前沒(méi)有創(chuàng)建過(guò)莺治,應(yīng)該只有一個(gè)master)
2. 通過(guò)pod repo add <本地索引庫(kù)的名字>? <遠(yuǎn)程索引庫(kù)的地址> ,創(chuàng)建本地索引庫(kù)并和遠(yuǎn)程索引庫(kù)做關(guān)聯(lián)(注:本地索引庫(kù)的名字建議和遠(yuǎn)程索引庫(kù)起的名字一樣)
三帚稠、遠(yuǎn)程代碼庫(kù) (代碼實(shí)際存放的遠(yuǎn)程倉(cāng)庫(kù))
創(chuàng)建遠(yuǎn)程代碼倉(cāng)庫(kù)(和創(chuàng)建遠(yuǎn)程索引庫(kù)的方式一樣)谣旁,創(chuàng)建一個(gè)FFCategoryKit的遠(yuǎn)程代碼庫(kù),用來(lái)存放FFCategory組件的代碼翁锡。同樣獲取到FFCategoryKit組件的遠(yuǎn)程代碼庫(kù)地址蔓挖。
四、本地代碼庫(kù)
創(chuàng)建FFCategoryKit組件本地代碼庫(kù)
1. pod lib create <組件名>? 創(chuàng)建本地代碼組件模版庫(kù)(根據(jù)自身需求對(duì)下面的提示信息做選擇就好)
2 .編譯運(yùn)行通過(guò)看下效果馆衔。接著把文件夾拖入到組件NXCategoryKit的classes路徑下瘟判。
3. 接著cd到Example下進(jìn)行pod install (把剛才拖入到classes里的文件夾pod進(jìn)來(lái))
4. 編譯組件看是否報(bào)錯(cuò),編譯通過(guò)后需要修改podspecs索引文件角溃,一般需要修改下面幾個(gè)問(wèn)題拷获。
在往下走之前,記得切換目錄,筆者在此處被坑好久
?a. 修改版本號(hào)
?b. 修改項(xiàng)目的簡(jiǎn)單概述和詳細(xì)描述
?c. 修改homepage和source地址
?d. 添加依賴庫(kù)
修改前的狀態(tài)如下圖所示:
修改對(duì)應(yīng)的地方即可
修改后如下:
5. 編譯運(yùn)行通過(guò)后,提交組件到遠(yuǎn)程代碼庫(kù)并打tag.
?- ?git add .
?- git commit -m?“xxx"
?- git remote add origin 遠(yuǎn)程代碼倉(cāng)庫(kù)地址
?- git push origin master
?- git tag 版本號(hào) (注:這里的版本號(hào)必須和podspec里寫(xiě)的版本號(hào)一致)
?- git push --tags
6. 通過(guò)pod spec lint? NXCategory.podspec --verbose --allow-warnings 命令驗(yàn)證podspec索引文件
7. 驗(yàn)證通過(guò)后减细,pod repo push <本地索引庫(kù)> <索引文件名> - -verbose - -allow-warnings 提交索引文件到遠(yuǎn)程索引庫(kù)匆瓜。
8.本地也可以查看已成功