使用Cocoapods創(chuàng)建私有庫(kù)Pods(腳本篇)

上一篇嘗試了創(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)目特定的文件。

文件目錄目錄.png

步驟二 創(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í),我的是這樣的:

文件層級(jí).png

我的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)目文件下面多了一些東西:

詳情.png

說(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í):

xcode層級(jí).png

注意:放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è)的事情!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Cocoapods是非常好用的一個(gè)iOS依賴管理工具,使用它可以方便的管理和更新項(xiàng)目中所使用到的第三方庫(kù),以及將自...
    Nash33閱讀 2,182評(píng)論 0 50
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,502評(píng)論 19 139
  • 學(xué)習(xí)新知識(shí)必然是一個(gè)踩坑的過(guò)程,這兩天看了下pod私有庫(kù)的創(chuàng)建,總體來(lái)說(shuō)還是比較簡(jiǎn)單的,但是中間踩了一個(gè)坑,也不能...
    Yasin的簡(jiǎn)書(shū)閱讀 1,918評(píng)論 4 11
  • 第三句。 第三句話說(shuō), 003 Few phenomena gave me more delight than t...
    演維閱讀 374評(píng)論 0 0
  • 做你喜歡的工作,不能保證會(huì)成功,但能保證你會(huì)快樂(lè)。 這種快樂(lè),來(lái)自你全身心投入,每天都在進(jìn)步的滿足感。 有人說(shuō),選...
    Cathy穎閱讀 204評(píng)論 0 0

友情鏈接更多精彩內(nèi)容