最近在研究組件化開發(fā),用CocoaPods私有庫是一個(gè)不錯(cuò)的選擇,下面我們來講一下如何創(chuàng)建私有庫。
第一步:我們需要兩個(gè)Git倉庫:一個(gè)是私有的Spec Repo Git倉庫,作用類似于CocoaPods的官方spec repo 專用來存放podspec; 另一個(gè)是私有庫源碼的Git倉庫(可以在Git、碼云等代碼平臺(tái)創(chuàng)建);
第二步:創(chuàng)建私有的Spec Repo
$pod repo add PublicModule ?https://gitee.com/charlesleo/MySpecs.git
然后可以在終端下執(zhí)行:$pod repo 查看添加的repo
第三步:創(chuàng)建Pod項(xiàng)目工程 "PublicModule"
$pod lib create?PublicModule
然后根據(jù)問題選擇選項(xiàng):
如圖(1),依次回復(fù)系統(tǒng)提示的問題。

選擇完后會(huì)自動(dòng)生成一個(gè)工程文件。
第四步:
接下來向pod文件夾中添加庫文件、資源,將代碼放入DevelopementPods/PublicModule/Classes中,資源文件放在Assets文件夾中,然后進(jìn)入Example文件夾執(zhí)行pod update命令,再次打開工程便可以看到新添加的代碼,運(yùn)行工程,測試組件。
注:需要注意的是每當(dāng)你向pod中添加新的文件或者以后更新podspec的版本都需要重新執(zhí)行一遍pod update命令。
測試無誤后需要將該項(xiàng)目添加并推送到遠(yuǎn)端倉庫,并編輯podspec文件。
git add .
git commit -m “………”
git remote add origin git@..........??? #添加遠(yuǎn)程倉庫
git push origin master???????????? #提交到遠(yuǎn)端倉庫
因?yàn)閜odspec文件中獲取GIt版本控制的項(xiàng)目還需要tag號(hào),所以提交的代碼需要打上一個(gè)tag。
git tag -m “……” “0.1.0”
git push origin --tags???????? #推送tag到遠(yuǎn)端倉庫
第五步:
編輯podspec文件,它是一個(gè)Ruby的文件。
先看圖(2),這個(gè)自動(dòng)生成的podspec文件,

下面對于圖(2)中的紅框依次解釋:
1:s.version 這個(gè)是關(guān)聯(lián)我們剛才打的tag的版本號(hào),后面發(fā)不完版本,pod 就是通過podspec文件的這個(gè)version 找到服務(wù)器上面的tag好的代碼的。
2:s.description 這個(gè)是對該庫的描述,描述要盡可能詳細(xì),方便別人能看懂這個(gè)庫的功能。
3:s.homepage 這個(gè)是我們這個(gè)庫的代碼倉庫地址。我用的是http 格式。
4:s.source 這個(gè)依然是我們的代碼倉庫地址可是ssh格式 也可以是http
5:s.source_file 這個(gè)路徑里面存放的是我們的代碼文件
6:s.resouce_files 這個(gè)默認(rèn)是注釋掉的,如果需要添加資源就需要放開這個(gè)。
7:s.depency 這個(gè)是該庫的依賴,比如我們這個(gè)庫要引用AFNetworking? 就是如圖(2)所示。
第六步:
編輯完podspec文件以后,可以通過pod spec lint 命令來驗(yàn)證是否有問題。如果驗(yàn)證通過則提示圖(3)(PS:圖三來自網(wǎng)絡(luò))

如果出現(xiàn)passed validation 就說明ok了 可以使用pod repo push 命令來發(fā)布到服務(wù)器了。
如下命令
pod?repo?push?MySpecs PublicModule.podspec?
#前面是本地Repo名字?后面是podspec名字
如果push成功的話,可以使用pod search 命令搜索我們發(fā)布的私有庫了。
如下命令
pod search?PublicModule
如果search 到了我們剛才發(fā)布的私有庫,那么恭喜你,到這里你的私有庫已經(jīng)制作完成了。