對于開發(fā)者來說,隨著自己的開發(fā)經(jīng)驗(yàn)越來越久卫袒,或是自己對于某個(gè)方面宵呛、知識點(diǎn)研究的比較透徹,應(yīng)該都會嘗試著寫一個(gè)屬于自己專屬的功能文件夕凝,比如呢:圖片輪播宝穗、相冊選擇户秤、文件上傳下載、音視頻播放逮矛、UI動畫鸡号、自動布局、刷新數(shù)據(jù)等…但怎么讓自己寫好的開源文件支持Cocoapods
下載方便自己须鼎、他人使用呢鲸伴,相信你認(rèn)真看過這文章后一定也會掌握好這項(xiàng)技能的。
準(zhǔn)備條件: GitHub賬號晋控,Trunk賬號汞窗,GitHub Desktop客戶端,Markdown編輯器
1. 創(chuàng)建開源的Public倉庫
在GitHub
個(gè)人主頁創(chuàng)建任意一個(gè)你想開源的倉庫
包含的術(shù)語:
Repository name
倉庫名稱
README
說明文檔
.gitignore
包含的文件類型赡译,即.git
文件類型GitHub都不會將其加入到版本管理中
license
文件(正規(guī)的倉庫都應(yīng)該有必須有且有一個(gè)仲吏,Pods依賴庫對這個(gè)文件的要求更嚴(yán))
接著clone
到本地GitHub Desktop
在Finder
打開本倉庫,看到目錄結(jié)構(gòu)如下
2. 創(chuàng)建podspec描述文件
podspec文件:
它本質(zhì)是個(gè)ruby
文件蝌焚,里面包含代碼的作者裹唆、版本號、源代碼地址只洒、依賴庫等信息的文件许帐,任何支持Cocoapods的開源代碼都必須有podspec
文件,這樣開源很方便的讓Cocoapods搜索到對應(yīng)的podspec
創(chuàng)建podspec
文件
pod spec create 工程名
創(chuàng)建好之后在Finder
中看到的目錄結(jié)構(gòu)如下
接著在工程文件內(nèi)部添加你自己的開源文件(文件名建議和工程名一樣)红碑,這時(shí)也可以添加為開源框架說寫的Demo
舞吭,這樣方便開發(fā)者更好的理解、使用等(這不是必須的析珊,但我個(gè)人還是強(qiáng)烈建議用封裝好的開源文件寫個(gè)Demo
)
這時(shí)再打開客戶端GitHub Desktop
,可以看到待提交文件和歷史提交記錄等
然后打開并編輯自己倉庫的podspec
描述文件
podspec
常用的參數(shù)的含義解釋如下:
s.name 倉庫名字
s.license 文件類型
s.requires_arc 是否支持ARC
s.version 當(dāng)前版本號
s.platform 支持的平臺
s.framework 導(dǎo)入依賴的框架庫
s.summary 倉庫功能的描述
s.author 作者信息
s.source_files 源文件的路徑(相對podspec文件而定)
s.resourcs 資源文件蔑穴,不需參與編譯的
s.homepage 主頁地址
s.source 具體路徑
s.public_header_files 預(yù)編譯頭文件路徑
podspec
語法結(jié)構(gòu)
Pod::Spec.new do |s|
...
...
s.subspec '子目錄' do |ss|
...
end
s.subspec '子目錄' do |ss|
...
end
end
即:它從
Pod::Spec.new do |s|
開始忠寻,到最后一個(gè)end
結(jié)束中間每一個(gè)subspec到end
是一個(gè)子目錄,子目錄對應(yīng)的|**|
中間名字是可以任意給命名的存和,但子目錄內(nèi)部使用的名稱必須一致
podspec
通配符的說明
- a{bb,bc}def.{h,m}表示四個(gè)文件abbdef.h abbdef.m abcdef.h abcdef.m
- *.{h,m,mm}表示所有的.h .m .mm文件
- Class/**/*.{h,m}表示Class目錄下的所有.h .m文件
3. 為源代碼添加對應(yīng)的Tag
- 在GitHub上面的源代碼需要打上版本號標(biāo)簽奕剃,這樣
Cocoapods
管理器才能更準(zhǔn)確地找到你的repo
- 通過
Iterm
命令push
源代碼的tag
值
git tag '0.0.1' //版本號
git push --tags //提交標(biāo)簽
截圖如下:
這時(shí)打開自己的GitHub主頁
注意:若是以上步驟都不錯(cuò)的話,這時(shí)
Tags
下的文件和Branches
下的文件應(yīng)是一一對應(yīng)的捐腿,如下:
4. 驗(yàn)證podspec文件的正確性
pod spec lint 工程名字.podspec --verbose
成功之后的截圖如下:
注意:任何的警告纵朋、錯(cuò)誤都是不能被添加到
Spec Repo
中
5. 通過Trunk推送給Cocoapods服務(wù)器
首先向trunk服務(wù)器
查詢自己的注冊信息
pod trunk me
存在Trunk賬號
截圖:
沒有注冊Trunk
的話,注冊一個(gè)賬號
- 先確認(rèn)當(dāng)前的Cocoapods版本號(最低要求版本0.33)茄袖,現(xiàn)在最新的版本號好像是
1.0.1
pod --version / gem list --local | grep cocoapods
若是版本不滿足操软,更新一下
sudo gem install cocoapods
注冊Trunk賬號
,回車之后去打開郵箱的鏈接(需要copy
宪祥,不能直接點(diǎn)擊)即可完成
pod trunk register 郵箱全稱 '用戶名' --verbose
最后通過終端push對應(yīng)的podspec聂薪,完成開源項(xiàng)目支持Cocoapods下載的最后一步
pod trunk push 工程名字.podspec
成功的結(jié)果截圖:
5. 更新本地pod依賴庫
pod setup
結(jié)果截圖如下:
這時(shí)就可以搜索自己剛提交過的開源文件
- 成功之后
Cocoapods
服務(wù)器會將上傳的podspec
文件轉(zhuǎn)換為需要的json
文件 - 檢驗(yàn)?zāi)阕约旱拈_源描述文件
- 前往文件夾 -
~/.cocoapods/repos/master/Specs
找到對已應(yīng)的json文件家乘,如截圖所示:
打開json文件
內(nèi)容:
- 此刻,你也可以在
Cocoapods
官方的spec
文件中查詢到對應(yīng)的json文件藏澳,Cocoapods的Spec仁锯,方法如上面所示,這里省略…
自此翔悠,制作自己的開源項(xiàng)目支持
Cocoapods
下載的全部操作流程結(jié)束业崖。
6. 更新倉庫的版本
若是修改描述文件、更新開源文件等都需要重新更新倉庫
步驟如下:
- 修改
podspec
和tag
(代碼版本號) - 重新
trunk
到Cocoapods
服務(wù)器
今回家早了些蓄愁,自己最近在寫即時(shí)通訊IM的東西双炕,忙的好久沒上過簡書了,還好現(xiàn)在終于給這個(gè)知識點(diǎn)寫完了…晚安啦涝登。雄家。。
最后附上之前的參考鏈接:
CocoaPods安裝使用及配置私有庫