上一篇嘗試了創(chuàng)建自己的pod私有庫(kù),步驟還算簡(jiǎn)單,但是有些重復(fù)性工作能不能用腳本代替呢?當(dāng)然自己的功力還沒(méi)達(dá)到那個(gè)火候,只有借別人的輪子,偶然的一個(gè)機(jī)會(huì)找到了casa大神在github上有一個(gè)腳本,腳本地址。腳本提供了podspec,gitignore,readme.md,podfile,license模板,通過(guò)config.sh配置當(dāng)前項(xiàng)目,就可以給將要組件化的項(xiàng)目添加這些必要的文件,然后在通過(guò)upload.sh腳本就可以提交podspec文件到repo去。接下來(lái)就簡(jiǎn)單介紹一下腳本的使用步驟吧。
步驟一 下載腳本
從這里下載腳本,ConfigPrivatePod文件夾中包含一個(gè)config.sh腳本文件和一個(gè)templates文件夾,templates文件夾里全是所需要的模板文件,在配置并執(zhí)行了config.sh腳本后,會(huì)為我們的項(xiàng)目生成項(xiàng)目特定的文件。

步驟二 創(chuàng)建私有源倉(cāng)庫(kù),配置模板
在公司自己的服務(wù)器或者在GitHub上創(chuàng)建一個(gè)作為私有庫(kù)的倉(cāng)庫(kù),這里我創(chuàng)建的倉(cāng)庫(kù)名字為:XLZGComponent,倉(cāng)庫(kù)地址為:http://*****/XLZGComponent.git。
首先,向Cocoapods的repo添加我們創(chuàng)建的私有庫(kù),添加命令:
pod repo add XLZGComponent http://*****/XLZGComponent.git
接著,修改templates文件夾中的podfile模板,如下:
# Uncomment this line to define a global platform for your project
# platform :ios, '9.0'
//這里就是自己的私有源地址(我們剛剛創(chuàng)建的)
source 'http://*****/XLZGComponent.git'
//GitHub的源地址
source 'https://github.com/CocoaPods/Specs.git'
target '__ProjectName__' do
# Uncomment this line if you're using Swift or would like to use dynamic frameworks
# use_frameworks!
end
繼續(xù),修改upload.sh腳本中私有庫(kù)名字,如下:
pod repo push 自己的私有庫(kù)名字 __ProjectName__.podspec --verbose --allow-warnings
我的就是這樣的:
pod repo push XLZGComponent __ProjectName__.podspec --verbose --allow-warnings
步驟三 創(chuàng)建項(xiàng)目工程,工程的git倉(cāng)庫(kù)
創(chuàng)建一個(gè)工程項(xiàng)目,這個(gè)項(xiàng)目中將有我們一會(huì)兒需要pod的源文件。由于使用腳本,所以要注意項(xiàng)目和腳本文件的層級(jí),我的是這樣的:

我的PodTest文件下放了ConfigPrivatePod腳本文件夾,testA為我的工程項(xiàng)目,在git服務(wù)器上創(chuàng)建一個(gè)testA的git倉(cāng)庫(kù):http://*****/testA.git。
步驟四 配置并執(zhí)行config.sh
終端cd到 ConfigPrivatePod 文件夾,運(yùn)行腳本:
./ConfigPrivatePod.sh
按提示輸入項(xiàng)目的HTTPS Repo URL ,SSH Repo URL ,HOME Page URL地址,我這里就是輸入testA相關(guān)地址。配置好了,就可以發(fā)現(xiàn)我們項(xiàng)目文件下面多了一些東西:

說(shuō)明:因?yàn)樵趯?shí)際使用中,我們不可能pod整個(gè)項(xiàng)目到我們項(xiàng)目中去,只會(huì)pod一些類文件或者資源文件。所以我在項(xiàng)目中創(chuàng)建了一個(gè)和項(xiàng)目名一樣的文件夾testA,里面有一個(gè)類,這個(gè)就是一會(huì)兒將作為第三使用的類。而且casa的這個(gè)腳本在創(chuàng)建podspec文件里設(shè)置源文件路徑也是在項(xiàng)目文件夾下與項(xiàng)目名一樣的文件夾。也不知道說(shuō)清楚沒(méi)有,也就是要使用這個(gè)腳本,需要在xcode項(xiàng)目名目錄下創(chuàng)建一個(gè)和項(xiàng)目名一樣的文件夾里面放要作為第三方的文件。當(dāng)然這不是必須,只是為了腳本,當(dāng)然可以根據(jù)自己的需要修改腳本。還是覺(jué)得好繞,就說(shuō)到這里吧,下面是xcode層級(jí):

注意:放A_catergory類的文件夾testA在項(xiàng)目中必須是一個(gè)物理存在的一文件夾。
步驟五 提交項(xiàng)目到git倉(cāng)庫(kù),發(fā)版
參照前一篇,發(fā)版那一步,這里
步驟六 提交podspec文件到repo去
cd到templates文件下,執(zhí)行upload.sh腳本:
./upload.sh
最后
最后就可以像使用AFNetworking一樣pod使用了,具體使用方法參照前一篇,使用步驟,這里
總結(jié)
終于寫(xiě)完了,寫(xiě)的好糾結(jié),總覺(jué)得沒(méi)寫(xiě)清楚,沒(méi)有清楚的表達(dá)出具體的步驟。如有不懂得地方,請(qǐng)留言,或者私信,一起探討,有不對(duì)的地方也請(qǐng)大家指出,我立刻改正。自己也了好幾篇文章,寫(xiě)文章不容易,寫(xiě)一篇通俗易懂的文章更不容易,這也許是我堅(jiān)持寫(xiě)的原因,希望有一天能讓自己想表達(dá)的通過(guò)文字完全的表達(dá)出來(lái),寫(xiě)文章還有一個(gè)好處,讓自己再一次梳理邏輯,讓邏輯更清晰,記憶更深刻。在此感謝casa大神。
分享是一件快樂(lè)的事情!