前言
iOS組件化開(kāi)發(fā)很重要的一個(gè)技術(shù)點(diǎn):CocoaPods私有庫(kù)的搭建。而且最近答應(yīng)一個(gè)網(wǎng)友要寫(xiě)一篇關(guān)于《CocoaPods搭建私有庫(kù)》相關(guān)的文章,于是結(jié)合網(wǎng)上的一些blog和實(shí)際操作,《CocoaPods搭建私有庫(kù)》這篇文章就誕生了。
文章目錄(即具體步驟)
一、創(chuàng)建一個(gè)spec Repo的私有遠(yuǎn)程倉(cāng)庫(kù) 和 一個(gè)存放pod所需的項(xiàng)目工程文件的遠(yuǎn)程倉(cāng)庫(kù);
二、創(chuàng)建spec Repo;
三、創(chuàng)建pod的所需的項(xiàng)目工程文件,并上傳到遠(yuǎn)程私有倉(cāng)庫(kù);
四、向私有的spec Repo遠(yuǎn)程倉(cāng)庫(kù)中提交podspec;
五、使用自己創(chuàng)建的私有pod庫(kù);
具體步驟
一、創(chuàng)建一個(gè)spec Repo的私有遠(yuǎn)程倉(cāng)庫(kù) 和 一個(gè)存放pod所需的項(xiàng)目工程文件的遠(yuǎn)程倉(cāng)庫(kù);(注:github創(chuàng)建私有項(xiàng)目是收費(fèi)的,所以這里選擇免費(fèi)的“碼云”)
創(chuàng)建XWSpec遠(yuǎn)程倉(cāng)庫(kù),用來(lái)存放本地spec
創(chuàng)建XWPodProject遠(yuǎn)程倉(cāng)庫(kù),用來(lái)存放項(xiàng)目工程文件
二、創(chuàng)建spec Repo;
前往文件夾 ~/.cocoapods/repos,打開(kāi)終端,在終端切換到當(dāng)前目錄下,然后進(jìn)行pod repo add操作,在終端輸入:
pod repo add XWSpec https://gitee.com/xw___/XWSpec.git
注:https://gitee.com/xw___/XWSpec.git是spec Repo的私有遠(yuǎn)程倉(cāng)庫(kù)地址。
三、創(chuàng)建pod的所需的項(xiàng)目工程文件,并上傳到遠(yuǎn)程私有倉(cāng)庫(kù);
1、創(chuàng)建本地pod所需的項(xiàng)目工程文件
在終端,cd切換到某個(gè)目錄下,這里我選擇的是桌面上文件夾testPod目錄下的,然后執(zhí)行pod lib create XWPodLib如圖:
然后進(jìn)到到XWPodLib里面找到Classes中的"ReplaceMe.m"文件刪除,然后將自己所需要的文件放到這里目錄下,如下圖:
接下來(lái)最重要的一步,也是很容易忽略的一步,不然提交后檢查會(huì)出現(xiàn)很多問(wèn)題。
具體步驟:
(1)cd 到Example文件下,然后pod install下,更新Example項(xiàng)目的pod。
(2)打開(kāi)example中的項(xiàng)目,找到項(xiàng)目中的podspec文件,更改spec。
修改完成后,cd 到XWPodLib目錄下,然后驗(yàn)證本地podspec文件有效性,終端命令如下:
pod lib lint XWPodLib.podspec
2、本地項(xiàng)目文件上傳到遠(yuǎn)程倉(cāng)庫(kù)中
將本地項(xiàng)目與遠(yuǎn)程倉(cāng)庫(kù)相關(guān)聯(lián),使用終端命令:
git remote add origin 遠(yuǎn)程倉(cāng)庫(kù)地址
push到遠(yuǎn)程的時(shí)候出現(xiàn)這種問(wèn)題,于是就先pull ,于是就出現(xiàn)了下圖的問(wèn)題(即拒絕合并不相關(guān)的歷史,確實(shí)本地新加的內(nèi)容還從未和線上連接過(guò)):
之后輸入如下命令(即告訴允許合并不相關(guān)的歷史內(nèi)容):
git pull origin master --allow-unrelated-histories
解決一下沖突就可以了。解決沖突后上傳到遠(yuǎn)程倉(cāng)庫(kù)。
這樣遠(yuǎn)程倉(cāng)庫(kù)就有我們本地的項(xiàng)目了
然后進(jìn)行.podspec文件本地和遠(yuǎn)程有效性的驗(yàn)證,終端命令如下:
pod spec lint XWPodLib.podspec
注意:
如果私有庫(kù)中依賴私有庫(kù),則驗(yàn)證podspec文件的時(shí)候需要加上–sources參數(shù),否則會(huì)出現(xiàn)找不到你依賴的私有庫(kù),示例如下圖:
顯示我們沒(méi)有遠(yuǎn)程倉(cāng)庫(kù)打標(biāo)簽,這里需要重點(diǎn)注意的是,我們給打的標(biāo)簽值要與podspec文件中的版本號(hào)一致。
打標(biāo)簽的步驟如圖:
之后,再次使用pod spec lint XWPodLib.podspec,進(jìn)行.podspec文件本地和遠(yuǎn)程有效性的驗(yàn)證
四、向私有的spec Repo遠(yuǎn)程倉(cāng)庫(kù)中提交podspec;
使用 pod repo push XWSpec XWPodLib.podspec 命令把私有庫(kù)添加到私有repo中。
注意:仍然在本項(xiàng)目的目錄路徑下進(jìn)行操作:
前往文件夾 ~/.cocoapods/repos去查看XWSpec目錄下的文件如下:
之后,可以通過(guò)終端命令查看第三方框架倉(cāng)庫(kù)源,命令如下:
pod repo
然后使用 pod search XWPodLib 就可以搜索出來(lái)了。
到此,創(chuàng)建私有庫(kù)成功了。
五、使用自己創(chuàng)建的私有pod庫(kù);
使用source 指定:
然后跳轉(zhuǎn)到項(xiàng)目目錄,執(zhí)行終端命令pod install,之后就可以使用了。
更多文章
CocoaPods開(kāi)源庫(kù)的搭建
CocoaPods搭建私有庫(kù)
CocoaPods搭建私有庫(kù)遇到問(wèn)題
CocoaPods私有庫(kù)的升級(jí)維護(hù)
SKStoreReviewController之程序內(nèi)評(píng)價(jià)
App應(yīng)用程序圖標(biāo)的動(dòng)態(tài)更換
開(kāi)源框架 MGJRouter_Swift
iOS的MVP設(shè)計(jì)模式
iOS插件化
iOS FMDB的使用
Swift之ReactiveSwift
OC之ReactiveCocoa
OC之ReactiveCocoa進(jìn)階
iOS 性能考慮