概述
CocoaPods是當前iOS開發(fā)最流行的版本依賴工具桃熄,使用CocoaPds對項目進行依賴管理會為開發(fā)者節(jié)省不少的時間香椎。相信很多開發(fā)者都嘗試過通過CocoaPods管理自己的項目贸呢。但是如何將自己的項目發(fā)布到CocoaPods呢胡陪?其他開發(fā)者又如何通過CocoaPods搜索到你發(fā)布到CocoaPods的項目呢县钥?接下來我們介紹如何通過trunk的方式將自己的代碼發(fā)布至CocoaPds,以及發(fā)布過程中可能遇到的各種問題断凶。
安裝CocoaPods
如果你本地已經(jīng)安裝好了Ruby環(huán)境,那么下載和安裝CocoaPods將十分簡單。在Terminal(終端)中輸入一下命令:
sudo gem install cocoapods
若OSX版本在10.11以上宽气,請用一下方法安裝:
sudo gem install -n /usr/local/bin cocoapods
在Terminal(終端)敲入命令后前硫,很長時間沒有任何反應听哭,這可能是由于CocoaPods在國內(nèi)是被墻了痊远,所以我們需要更換源,我們把源切換至ruby-china來訪問CocoaPods刚陡。步驟如下:
sudo gem update --system(如果gem為老版本則可執(zhí)行此命令升級)
sudo gem sources --remove https://rubygems.org/
sudo gem sources -a http://gems.ruby-china.org/
驗證你的ruby鏡像有且僅有ruby-china惩妇。使用如下命令查看:
sudo?gem sources -l
如果在終端中出現(xiàn)下面文字才表明你上面的命令是成功的:
*** CURRENT SOURCES ***
https://gems.ruby-china.org/
此時我們在重新執(zhí)行上述給出的安裝CocoaPods的命令即可。
安裝本地庫:
pod setup
需要注意筐乳,執(zhí)行上述命令時會輸出:Setting up CocoaPods master repo屿附。執(zhí)行時可能會等待比較長的時間,因為CocoaPods將它的信息下載到~/.cocoapods下哥童,如果你想查看下載進度可切換至該目錄下用du -sh *來查看當前的下載進度挺份。
創(chuàng)建 Pod 庫依賴的文件
1. podspec文件
podspec文件是Pod庫的描述文件,每個Pod庫必須有且僅有一個這樣的文件贮懈。文件名需要與我們將要創(chuàng)建的 Pod 庫的名稱一致匀泊。
創(chuàng)建podspec文件
切換至工程目錄下,執(zhí)行:
pod spec create “podname”
創(chuàng)建完成后朵你,在你的工程目錄下就會出現(xiàn)對應的文件("podname.podspec")各聘。(為了方便閱讀我將所有的注釋和不需要的選項都刪除了)
2. pod驗證
如果podspec文件已經(jīng)完成,我們需要驗證podspec文件抡医。
2.1 驗證podspec文件
set the new version to 0.0.1
set the new tag to 0.0.1
pod lib lint
如果podspec文件驗證通過躲因,Terminal(終端)會顯示:“your pod name” passed validation。
2.2 將新建的文件添加到git管理并打上tag推送到遠端代碼倉庫上忌傻。
git add -A && git commit -m "Release 0.0.1."
git tag '0.0.1'
git push --tags
git push origin master
使用trunk push podspec文件
以上工作都就緒后大脉,我們就可以將 Pod 提交給 CocoaPods 了,CocoaPods 使用 trunk 服務讓我們來提交 Pod水孩。
?1. 注冊 Trunk
pod trunk register 郵箱? '用戶名' --description='描述信息' --verbose
2. 查看注冊的pod信息:
pod trunk me
3. 同過Trunk發(fā)布你的pod
pod trunk push podname.podspec
發(fā)布成功之后镰矿,你可以運行pod setup來更新你的 Pod 依賴庫后,再使用pod search “podname”命令來搜索您剛放發(fā)布的pod俘种。
4. 添加其它維護者(如果您的pod是由多人維護秤标,您可以添加其他的維護者)
pod trunk add-owner ARAnalytics kyle@cocoapods.org