上一篇嘗試了創建自己的pod私有庫,步驟還算簡單,但是有些重復性工作能不能用腳本代替呢?當然自己的功力還沒達到那個火候,只有借別人的輪子,偶然的一個機會找到了casa大神在github上有一個腳本,腳本地址。腳本提供了podspec,gitignore,readme.md,podfile,license模板,通過config.sh配置當前項目,就可以給將要組件化的項目添加這些必要的文件,然后在通過upload.sh腳本就可以提交podspec文件到repo去。接下來就簡單介紹一下腳本的使用步驟吧。
步驟一 下載腳本
從這里下載腳本,ConfigPrivatePod文件夾中包含一個config.sh腳本文件和一個templates文件夾,templates文件夾里全是所需要的模板文件,在配置并執行了config.sh腳本后,會為我們的項目生成項目特定的文件。
步驟二 創建私有源倉庫,配置模板
在公司自己的服務器或者在GitHub上創建一個作為私有庫的倉庫,這里我創建的倉庫名字為:XLZGComponent,倉庫地址為:http://*****/XLZGComponent.git。
首先,向Cocoapods的repo添加我們創建的私有庫,添加命令:
pod repo add XLZGComponent http://*****/XLZGComponent.git
接著,修改templates文件夾中的podfile模板,如下:
# Uncomment this line to define a global platform for your project
# platform :ios, '9.0'
//這里就是自己的私有源地址(我們剛剛創建的)
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
繼續,修改upload.sh腳本中私有庫名字,如下:
pod repo push 自己的私有庫名字 __ProjectName__.podspec --verbose --allow-warnings
我的就是這樣的:
pod repo push XLZGComponent __ProjectName__.podspec --verbose --allow-warnings
步驟三 創建項目工程,工程的git倉庫
創建一個工程項目,這個項目中將有我們一會兒需要pod的源文件。由于使用腳本,所以要注意項目和腳本文件的層級,我的是這樣的:
我的PodTest文件下放了ConfigPrivatePod腳本文件夾,testA為我的工程項目,在git服務器上創建一個testA的git倉庫:http://*****/testA.git。
步驟四 配置并執行config.sh
終端cd到 ConfigPrivatePod 文件夾,運行腳本:
./ConfigPrivatePod.sh
按提示輸入項目的HTTPS Repo URL ,SSH Repo URL ,HOME Page URL地址,我這里就是輸入testA相關地址。配置好了,就可以發現我們項目文件下面多了一些東西:
說明:因為在實際使用中,我們不可能pod整個項目到我們項目中去,只會pod一些類文件或者資源文件。所以我在項目中創建了一個和項目名一樣的文件夾testA,里面有一個類,這個就是一會兒將作為第三使用的類。而且casa的這個腳本在創建podspec文件里設置源文件路徑也是在項目文件夾下與項目名一樣的文件夾。也不知道說清楚沒有,也就是要使用這個腳本,需要在xcode項目名目錄下創建一個和項目名一樣的文件夾里面放要作為第三方的文件。當然這不是必須,只是為了腳本,當然可以根據自己的需要修改腳本。還是覺得好繞,就說到這里吧,下面是xcode層級:
注意:放A_catergory類的文件夾testA在項目中必須是一個物理存在的一文件夾。
步驟五 提交項目到git倉庫,發版
參照前一篇,發版那一步,這里
步驟六 提交podspec文件到repo去
cd到templates文件下,執行upload.sh腳本:
./upload.sh
最后
最后就可以像使用AFNetworking一樣pod使用了,具體使用方法參照前一篇,使用步驟,這里
總結
終于寫完了,寫的好糾結,總覺得沒寫清楚,沒有清楚的表達出具體的步驟。如有不懂得地方,請留言,或者私信,一起探討,有不對的地方也請大家指出,我立刻改正。自己也了好幾篇文章,寫文章不容易,寫一篇通俗易懂的文章更不容易,這也許是我堅持寫的原因,希望有一天能讓自己想表達的通過文字完全的表達出來,寫文章還有一個好處,讓自己再一次梳理邏輯,讓邏輯更清晰,記憶更深刻。在此感謝casa大神。
分享是一件快樂的事情!