對于開發者來說,隨著自己的開發經驗越來越久,或是自己對于某個方面、知識點研究的比較透徹,應該都會嘗試著寫一個屬于自己專屬的功能文件,比如呢:圖片輪播、相冊選擇、文件上傳下載、音視頻播放、UI動畫、自動布局、刷新數據等…但怎么讓自己寫好的開源文件支持Cocoapods
下載方便自己、他人使用呢,相信你認真看過這文章后一定也會掌握好這項技能的。
準備條件: GitHub賬號,Trunk賬號,GitHub Desktop客戶端,Markdown編輯器
1. 創建開源的Public倉庫
在GitHub
個人主頁創建任意一個你想開源的倉庫
包含的術語:
Repository name
倉庫名稱
README
說明文檔
.gitignore
包含的文件類型,即.git
文件類型GitHub都不會將其加入到版本管理中
license
文件(正規的倉庫都應該有必須有且有一個,Pods依賴庫對這個文件的要求更嚴)
接著clone
到本地GitHub Desktop
在Finder
打開本倉庫,看到目錄結構如下
2. 創建podspec描述文件
podspec文件:
它本質是個ruby
文件,里面包含代碼的作者、版本號、源代碼地址、依賴庫等信息的文件,任何支持Cocoapods的開源代碼都必須有podspec
文件,這樣開源很方便的讓Cocoapods搜索到對應的podspec
創建podspec
文件
pod spec create 工程名
創建好之后在Finder
中看到的目錄結構如下
接著在工程文件內部添加你自己的開源文件(文件名建議和工程名一樣),這時也可以添加為開源框架說寫的Demo
,這樣方便開發者更好的理解、使用等(這不是必須的,但我個人還是強烈建議用封裝好的開源文件寫個Demo
)
這時再打開客戶端GitHub Desktop
,可以看到待提交文件和歷史提交記錄等
然后打開并編輯自己倉庫的podspec
描述文件
podspec
常用的參數的含義解釋如下:
s.name 倉庫名字
s.license 文件類型
s.requires_arc 是否支持ARC
s.version 當前版本號
s.platform 支持的平臺
s.framework 導入依賴的框架庫
s.summary 倉庫功能的描述
s.author 作者信息
s.source_files 源文件的路徑(相對podspec文件而定)
s.resourcs 資源文件,不需參與編譯的
s.homepage 主頁地址
s.source 具體路徑
s.public_header_files 預編譯頭文件路徑
podspec
語法結構
Pod::Spec.new do |s|
...
...
s.subspec '子目錄' do |ss|
...
end
s.subspec '子目錄' do |ss|
...
end
end
即:它從
Pod::Spec.new do |s|
開始,到最后一個end
結束中間每一個subspec到end
是一個子目錄,子目錄對應的|**|
中間名字是可以任意給命名的,但子目錄內部使用的名稱必須一致
podspec
通配符的說明
- a{bb,bc}def.{h,m}表示四個文件abbdef.h abbdef.m abcdef.h abcdef.m
- *.{h,m,mm}表示所有的.h .m .mm文件
- Class/**/*.{h,m}表示Class目錄下的所有.h .m文件
3. 為源代碼添加對應的Tag
- 在GitHub上面的源代碼需要打上版本號標簽,這樣
Cocoapods
管理器才能更準確地找到你的repo
- 通過
Iterm
命令push
源代碼的tag
值
git tag '0.0.1' //版本號
git push --tags //提交標簽
截圖如下:
這時打開自己的GitHub主頁
注意:若是以上步驟都不錯的話,這時
Tags
下的文件和Branches
下的文件應是一一對應的,如下:
4. 驗證podspec文件的正確性
pod spec lint 工程名字.podspec --verbose
成功之后的截圖如下:
注意:任何的警告、錯誤都是不能被添加到
Spec Repo
中
5. 通過Trunk推送給Cocoapods服務器
首先向trunk服務器
查詢自己的注冊信息
pod trunk me
存在Trunk賬號
截圖:
沒有注冊Trunk
的話,注冊一個賬號
- 先確認當前的Cocoapods版本號(最低要求版本0.33),現在最新的版本號好像是
1.0.1
pod --version / gem list --local | grep cocoapods
若是版本不滿足,更新一下
sudo gem install cocoapods
注冊Trunk賬號
,回車之后去打開郵箱的鏈接(需要copy
,不能直接點擊)即可完成
pod trunk register 郵箱全稱 '用戶名' --verbose
最后通過終端push對應的podspec,完成開源項目支持Cocoapods下載的最后一步
pod trunk push 工程名字.podspec
成功的結果截圖:
5. 更新本地pod依賴庫
pod setup
結果截圖如下:
這時就可以搜索自己剛提交過的開源文件
- 成功之后
Cocoapods
服務器會將上傳的podspec
文件轉換為需要的json
文件 - 檢驗你自己的開源描述文件
- 前往文件夾 -
~/.cocoapods/repos/master/Specs
找到對已應的json文件,如截圖所示:
Snip20160717_21.png
打開json文件
內容:
- 此刻,你也可以在
Cocoapods
官方的spec
文件中查詢到對應的json文件,Cocoapods的Spec,方法如上面所示,這里省略…
自此,制作自己的開源項目支持
Cocoapods
下載的全部操作流程結束。
6. 更新倉庫的版本
若是修改描述文件、更新開源文件等都需要重新更新倉庫
步驟如下:
- 修改
podspec
和tag
(代碼版本號) - 重新
trunk
到Cocoapods
服務器
今回家早了些,自己最近在寫即時通訊IM的東西,忙的好久沒上過簡書了,還好現在終于給這個知識點寫完了…晚安啦。。。
最后附上之前的參考鏈接:
CocoaPods安裝使用及配置私有庫