1. 開(kāi)發(fā)私有庫(kù)
創(chuàng)建一個(gè) Aplication Project;
創(chuàng)建一個(gè)文件命名“Podfile”;
source 'https://github.com/CocoaPods/Specs.git'
source 'https://github.com/wzi90921/wzi-specs.git'
platform :ios, '8.0'
target "PodDemo" do
#忽略類庫(kù)中的警告
inhibit_all_warnings!
pod 'wzi-baseLib', :path => '../wzi-baseLib'
end
終端命令進(jìn)入“Podfile”的目錄下网杆,執(zhí)行 pod update
紅框標(biāo)識(shí)的就是我們私有庫(kù)項(xiàng)目:wzi-baseLib计露,現(xiàn)在我們可以在這個(gè)工程上進(jìn)行開(kāi)發(fā)了啤挎。
我們?cè)谒接袔?kù)項(xiàng)目中添加了代碼后饲嗽,就是出現(xiàn)Support File 文件組炭玫,這個(gè)是自動(dòng)生成的;
說(shuō)明:
修改“Prefix.h”文件貌虾,需要執(zhí)行 pod update 才會(huì)生效吞加;
修改“wzi-baseLib-prefix.pch”會(huì)立即生效,但是要把新添加的內(nèi)容復(fù)制到“Prefix.h”,否則執(zhí)行 pod update 后衔憨,新添加的內(nèi)容會(huì)沒(méi)有了
添加新代碼文件叶圃,新資源文件,都需要執(zhí)行 pod update
2.驗(yàn)證践图,提交到私有庫(kù)倉(cāng)庫(kù)
進(jìn)入“wzi-baseLib”目錄
驗(yàn)證私有庫(kù)
出現(xiàn) “wzi-baseLib.podspec passed validation.”表示驗(yàn)證通過(guò)了
pod spec lint wzi-baseLib.podspec --sources='https://github.com/CocoaPods/Specs' --use-libraries --allow-warnings --verbose
推送私有庫(kù)到私有倉(cāng)庫(kù)
推送成功后掺冠,在https://github.com/wzi90921/wzi-specs可以查到我們推送的類庫(kù)
pod repo push wzi-specs wzi-baseLib.podspec --sources='https://github.com/CocoaPods/Specs' --use-libraries --verbose --allow-warnings
進(jìn)入“wzi-moduleA”目錄,驗(yàn)證wzi-moduleA
因?yàn)閣zi-moduleA引用了‘wzi-baseLib’码党,所以--sources要包含我們的倉(cāng)庫(kù)地址德崭,如果還有其他倉(cāng)庫(kù)地址,一次加上揖盘;
//驗(yàn)證
pod spec lint wzi-moduleA.podspec --sources='https://github.com/wzi90921/wzi-specs.git,https://github.com/CocoaPods/Specs' --use-libraries --allow-warnings --verbose
//推送
pod repo push wzi-specs wzi-moduleA.podspec --sources='https://github.com/wzi90921/wzi-specs.git,https://github.com/CocoaPods/Specs' --use-libraries --allow-warnings --verbose
我們的倉(cāng)庫(kù)都出現(xiàn)了我們的私有庫(kù)了眉厨。
說(shuō)明:如果在驗(yàn)證私出現(xiàn)錯(cuò)誤,--verbose是輸出日志兽狭,搜索“- Error”或者”BUILD FAILED“,可以快速找到失敗的地方憾股。
3.項(xiàng)目中使用
在項(xiàng)目中添加私有倉(cāng)庫(kù),還有引入私有庫(kù)箕慧,執(zhí)行pod update就可以使用了
source 'https://github.com/CocoaPods/Specs.git'
source 'https://github.com/wzi90921/wzi-specs.git'
platform :ios, '8.0'
target "PodDemo" do
inhibit_all_warnings!
pod 'wzi-baseLib'
pod 'wzi-moduleA'
end
現(xiàn)在我們的私有庫(kù)就在Pods下了服球,Development Pods 就沒(méi)有了。
所有的代碼都放在了GitHub上面销钝,https://github.com/wzi90921
有需要的童鞋可以下載運(yùn)行下有咨。
4.最后
之前一直對(duì)創(chuàng)建自己的私有庫(kù)有很多疑問(wèn),比如
1.是否分開(kāi)兩個(gè)工程開(kāi)發(fā)蒸健,私有庫(kù)每一次修改座享、調(diào)試都要再主程序執(zhí)行pod update更新呢?
2.私有庫(kù)中的資源文件怎么加載似忧,能不能像放在主程序的資源一樣的用法渣叛?
當(dāng)自己動(dòng)手實(shí)踐的時(shí)候,很多步驟都會(huì)遇到不同的問(wèn)題盯捌,不斷的解決遇到的問(wèn)題淳衙,你對(duì)這個(gè)東西也就有了新的一些認(rèn)識(shí)了。
創(chuàng)建私有庫(kù)饺著,可以給自己的項(xiàng)目代碼拆分成一個(gè)合理的架構(gòu)箫攀,不會(huì)出現(xiàn)最基礎(chǔ)的層出現(xiàn)業(yè)務(wù)邏輯相關(guān)的代碼,為了解決具體的業(yè)務(wù)場(chǎng)景幼衰,會(huì)更多使用合適的設(shè)計(jì)模式靴跛。再通過(guò)私有庫(kù)擴(kuò)展出去,我們就可以實(shí)現(xiàn)模塊組件化渡嚣。以前整個(gè)工程編譯的時(shí)間太長(zhǎng)了梢睛,現(xiàn)在拆分了之后肥印,編譯時(shí)只是編譯主程序的代碼,大大的縮短了編譯時(shí)間绝葡。