概念理解
私有索引庫(kù)
私有索引庫(kù)的作用是存放.podSpec文件的拴还。當(dāng)你使用pod search AFN
時(shí)膝宁,pod會(huì)在本地的索引庫(kù)中進(jìn)行搜索鸦难。
私有索引庫(kù)分為本地私有索引庫(kù)和遠(yuǎn)程私有索引庫(kù),它們是相互對(duì)應(yīng)的员淫。
-
本地私有索引庫(kù)
其中master
是 CocoaPods 的本地索引庫(kù),他是公有的.只要安裝過CocoaPods的電腦合蔽,都會(huì)有這么一個(gè)索引庫(kù)。它對(duì)應(yīng)CocoaPods的遠(yuǎn)程索引庫(kù)介返。
其中ZNBRepo
是本地私有索引庫(kù)
接下來讓我們創(chuàng)建遠(yuǎn)程私有索引庫(kù),并且將遠(yuǎn)程私有索引庫(kù) 添加到本地
-
遠(yuǎn)程私有索引庫(kù)
我在碼云上創(chuàng)建了一個(gè)遠(yuǎn)程庫(kù),用來做遠(yuǎn)程私有索引庫(kù)
- 復(fù)制遠(yuǎn)程私有索引庫(kù)的地址
https://gitee.com/znbmm/ZNBRepo.git
2.打開終端,將遠(yuǎn)程私有庫(kù)關(guān)聯(lián)到本地
pod repo add ZNBRepo https://gitee.com/znbmm/ZNBRepo.git
3.就會(huì)發(fā)現(xiàn)將遠(yuǎn)程私有庫(kù)ZNBRepo
添加到本地了
私有代碼倉(cāng)庫(kù)
私有代碼倉(cāng)庫(kù)也分為本地私有代碼庫(kù)和遠(yuǎn)程私有代碼庫(kù)拴事,它們也是相互對(duì)應(yīng)的。
-
本地私有代碼倉(cāng)庫(kù)
新建一個(gè)名為組件化
的文件夾
cd /Users/wjwl/Desktop/組件化
pod lib create ZNBTool
按照提示完成所有配置后會(huì)得到一個(gè)模板文件
將自己抽出來的組件放到Classes文件夾下
-
遠(yuǎn)程私有代碼倉(cāng)庫(kù)
1.在碼云上創(chuàng)建一個(gè)名字為ZNBTool
的代碼倉(cāng)庫(kù)
2.修改模板項(xiàng)目ZNBTool
中的ZNBTool.podspec
文件
3.提交本地私有模板組件代碼到遠(yuǎn)程私有代碼倉(cāng)庫(kù)圣蝎,并打上tag
標(biāo)簽
cd /Users/wjwl/Desktop/組件化/ZNBTool
git add .
git commit -m '創(chuàng)建了一個(gè)組件'
git tag '0.1.0'
這個(gè)tag 跟 spec 文件中version 一致
git remote add origin <#遠(yuǎn)程代碼倉(cāng)庫(kù)地址#>
git push -u origin master
git push --tag
4.對(duì)文件進(jìn)行本地驗(yàn)證和遠(yuǎn)程驗(yàn)證
cd /Users/wjwl/Desktop/組件化/ZNBTool
pod lib lint --private
pod spec lint --private
5.將驗(yàn)證通過的.podSpec
文件加入到本地私有索引庫(kù)刃宵,并上傳到遠(yuǎn)程私有索引庫(kù)
pod repo push ZNBRepo ZNBTool.podspec
6.在ZNBRepo
路徑下就會(huì)有ZNBTool
,并帶有版本號(hào)
7.查看遠(yuǎn)程私有索引庫(kù)你會(huì)發(fā)現(xiàn)ZNBTool
已經(jīng)躺在里面了
8.使用終端搜索 ZNBTool
如果搜索不到的話可以嘗試
pod setup
還是搜不到的話
rm ~/Library/Caches/CocoaPods/search_index.json
pod setup
使用私有庫(kù)組件
在Podfile 頂部添加source
source 'https://gitee.com/znbmm/ZNBRepo.git'
更新組件
修改ZNBTool.podspec
中的version
cd /Users/wjwl/Desktop/組件化/ZNBTool
git add .
git commit -m '創(chuàng)建了一個(gè)組件'
git tag '0.2.0'
這個(gè)tag 跟 spec 文件中version 一致
git push -u -origin master
git push --tag
pod lib lint --private
pod spec lint --private
pod repo push ZNBRepo ZNBTool.podspec
如果 執(zhí)行pod repo push ZNBRepo ZNBTool.podspec
報(bào)錯(cuò)The repo 'xxxxx' at ../../../../../.cocoapods/repos/xxxx is not clean
可以嘗試
pod repo remove <#遠(yuǎn)程私有索引庫(kù)名.ex:ZNBRepo#>
再次添加
pod repo add <#遠(yuǎn)程私有索引庫(kù)名.ex:ZNBRepo#> <#遠(yuǎn)程私有索引庫(kù)地址#>
完成