一、 首先簡單瞭解下cocoapods的機制
cocoapods有個遠程索引庫,索引庫下放着框架的描述信息:框架的名稱,框架的版本號,框架的描述文件(.spec),開發者上傳的代碼都是位於索引庫的遠程地址下。當你進行pod初始化(pod setup)時,會把遠程索引庫下載到本地,即生成一個本地的索引庫。當我們搜索某個框架時(pod search xxx),其實在本地庫裏索引,此時真正的內部操作是檢索一個檢索文件(默認生成的文件名稱叫做search_index.json, 文件默認是被隱藏起來的,可以使用指令defaults write com.apple.finder AppleShowAllFiles Yes && killall Finder打開隱藏文件,打開文件的路徑爲:/Users/admin/Library/Caches/CocoaPods),最後通過pod install 安裝你所需的框架。
二、Cocoapods創建私有庫創建的過程
1.本地編寫好你所需上傳的框架。
2.在github上新建一個倉庫
這時我們的git遠程倉庫就建立好了
3.把寫好的框架傳到git遠程倉庫
如果你的git倉庫裏有文件,比如 LICENSE 文件,這時必須先pull拉取下:
git pull origin master
然後執行推到遠端:
git push origin master
這時說明已經傳成功了, 但是此時我們的框架僅僅被git託管而已,我們並不能通過pod search xx來搜索到,此時我們就必須創建描述文件(後綴爲.podspec)。
三、創建描述文件
pod spec create podSacrifice
描述文件創建完成後必須修改裏面的內容,這些都是我們檢索庫的關鍵字:
pod trunk register [email protected] '你的暱稱 --verbose
這時在郵箱裏驗證下,然後推倒遠端,在推之前必須打個標籤,這個標籤跟你的版本號一致,別人就跟你的tag來找到對應的版本號:
git tag
git tag '0.0.1'
git push --tags
提交完之後 可以用下面的命令行驗證
pod spec lint 驗證遠程(這個其實是本地與遠程一起驗證,可能會出現一系列的報錯,一一解決就好)
pod lib lint 驗證本地
pod trunk push podSacrifice.podspec
至此說明你已經成功上傳的你框架了!但是此時你用pod search xxx可能還是搜索不到,你的私有庫,
錯誤信息爲:[!] Unable to find a pod with name, author, summary, or description matching ‘xxxx’
解決方案爲:
我們pod setup
成功後會生成~/Library/Caches/CocoaPods/search_index.json
文件。- 終端輸入
rm ~/Library/Caches/CocoaPods/search_index.json
- 刪除成功後再執行
pod search xxxx
- 此時終端輸出:
Creating search index for spec repo 'master'.. Done!
,稍等片刻就會有出現相關類庫。