(三)敲重點6疽獭冤竹!遠程私有庫來了宿礁!
ⅰ.遠程私有庫演示
ⅱ.遠程私有庫升級+優(yōu)化(本篇)
鋪墊:本篇中的一些文件命名在ⅰ.篇中都有說明案铺,若看不懂可移步上篇一一對應上“鹁福拷貝一份ⅰ.篇中的TnagyuanBase和TangyuanProject控汉,現(xiàn)在要把另外兩個工具類集成過去。分別是網(wǎng)絡(luò)工具和宏定義返吻。目錄結(jié)構(gòu)如下??
同樣的姑子,在Classes文件夾下拖入需要集成的兩個類。
cd 進入example测僵,pod install一下街佑,就可以看到??紅框中已經(jīng)集成過來了。
But:纯俊沐旨!這個時候是編譯不過的,為什么呢榨婆?因為我們的網(wǎng)絡(luò)工具依賴了AFNetworking這個庫希俩,所以還在要spec文件里添加對AFNetworking的依賴。
再次pod install纲辽,可以在終端看到安裝AFNetworking3.1.0版本
這個時候再回到example工程編譯颜武,發(fā)現(xiàn)success了璃搜。OK,接下來要把所有的改動都提交到git上鳞上。每一次的提交都需要打標簽这吻,意味著一個新的版本,spec里的version要記得改篙议。
git add .
git commit -m 'x'
git push origin master
git tag 'x.x.x'
git push --tags
提交完后唾糯,要向本地私有索引庫TangyuanSpecs上傳spec文件,先lint驗證一下鬼贱。
pod spec lint --allow-warnings
pod repo push TangyuanSpecs(私有庫名) TangyuanBase.podspec(spec名)
這里有一個問題移怯,一般的警告其實是不影響的,只要加----allow-warnings即可这难。而我這邊驗證是通過的舟误,但是pod repo push的時候就報了error--->【[!] The `TangyuanBase.podspec` specification does not validate.】集成的AFNetworking是最新版的,而我封裝的方法有些已經(jīng)廢棄了姻乓,只要換成最新的方法就行嵌溢。倒騰了很久,把Enum.h也刪了蹋岩,最后成功的版本是0.5.0赖草,慚愧慚愧~~
最后一步,進入TangyuanProject剪个,更新一下podfile
pod update —no-repo-update
工程目錄pods下秧骑,最新的代碼都已經(jīng)集成進來了,同時也把依賴庫AFNetworking集成進來了
優(yōu)化
??上面我們看到扣囊,pod會把TangyuanBase下的所有代碼都集成過來了乎折,而且都在同一個文件夾。如果我現(xiàn)在只需要用到NetworkTool如暖,整個TangyuanBase集成過來有點冗余。那現(xiàn)在來個優(yōu)化忌堂。先看下AFNetorking盒至,它包含了5個子庫。
新建一個AFN+test工程士修,pod init枷遂,然后來編輯一下podfile,這里我們只集成其中兩個子庫
pod install一下棋嘲,就能看到工程目錄只集成了AFN的其中的兩個子庫
Ok酒唉,那我們現(xiàn)在開始給TangyuanBase庫框架做子庫。
?先打開TangyuanBase的example工程的podspec文件
?按照??圖標格式編寫子庫沸移,格式要注意
?提交到git痪伦,標簽!標簽!標簽! 重要的事情說三遍
git add .
git commit -m 'xx'
git push origin master
git tag 'x.x.x'
git push --tags
?然后驗證spec侄榴,上傳到本地的私有索引庫
pod spec lint --allow-warnings
pod repo push TangyuanSpecs(私有庫名) TangyuanBase.podspec(spec名)
?上傳成功后,pod search一下网沾,就能看到子庫
后續(xù)的導入私有庫子庫的步驟跟上面導入AFN子庫的步驟一樣癞蚕,這里就不重復了,但別忘了加上私有庫的url地址辉哥。
文采不夠桦山,全靠圖來湊??