制作自己的開源項目支持Cocoapods下載

對于開發者來說,隨著自己的開發經驗越來越久,或是自己對于某個方面、知識點研究的比較透徹,應該都會嘗試著寫一個屬于自己專屬的功能文件,比如呢:圖片輪播、相冊選擇、文件上傳下載、音視頻播放、UI動畫、自動布局、刷新數據等…但怎么讓自己寫好的開源文件支持Cocoapods下載方便自己、他人使用呢,相信你認真看過這文章后一定也會掌握好這項技能的。

準備條件: GitHub賬號,Trunk賬號,GitHub Desktop客戶端,Markdown編輯器

1. 創建開源的Public倉庫

GitHub個人主頁創建任意一個你想開源的倉庫

包含的術語:
Repository name倉庫名稱
README說明文檔
.gitignore包含的文件類型,即.git文件類型GitHub都不會將其加入到版本管理中
license文件(正規的倉庫都應該有必須有且有一個,Pods依賴庫對這個文件的要求更嚴)

創建步驟如圖

接著clone到本地GitHub Desktop

clone本地

Finder打開本倉庫,看到目錄結構如下

Snip20160717_12.png

2. 創建podspec描述文件

podspec文件:
它本質是個ruby文件,里面包含代碼的作者、版本號、源代碼地址、依賴庫等信息的文件,任何支持Cocoapods的開源代碼都必須有podspec文件,這樣開源很方便的讓Cocoapods搜索到對應的podspec

創建podspec文件

pod spec create 工程名

創建好之后在Finder中看到的目錄結構如下

創建podspec之后目錄結構

接著在工程文件內部添加你自己的開源文件(文件名建議和工程名一樣),這時也可以添加為開源框架說寫的Demo,這樣方便開發者更好的理解、使用等(這不是必須的,但我個人還是強烈建議用封裝好的開源文件寫個Demo

整體目錄結構

這時再打開客戶端GitHub Desktop,可以看到待提交文件和歷史提交記錄等

待提交文件

然后打開并編輯自己倉庫的podspec描述文件

編輯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
  1. 在GitHub上面的源代碼需要打上版本號標簽,這樣Cocoapods管理器才能更準確地找到你的repo
  2. 通過Iterm命令push源代碼的tag
git tag '0.0.1' //版本號 
git push --tags //提交標簽

截圖如下:


Snip20160717_13.png

這時打開自己的GitHub主頁

注意:若是以上步驟都不錯的話,這時Tags下的文件和Branches下的文件應是一一對應的,如下:

Snip20160717_14.png
Snip20160717_15.png
4. 驗證podspec文件的正確性
pod spec lint 工程名字.podspec --verbose

成功之后的截圖如下:


Snip20160717_16.png

注意:任何的警告、錯誤都是不能被添加到Spec Repo

5. 通過Trunk推送給Cocoapods服務器

首先向trunk服務器查詢自己的注冊信息

pod trunk me

存在Trunk賬號截圖:

Snip20160717_17.png

沒有注冊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

成功的結果截圖:


Snip20160717_18.png
5. 更新本地pod依賴庫
pod setup

結果截圖如下:


Snip20160717_19.png

這時就可以搜索自己剛提交過的開源文件


Snip20160717_20.png
  • 成功之后Cocoapods服務器會將上傳的podspec文件轉換為需要的json文件
  • 檢驗你自己的開源描述文件
  • 前往文件夾 - ~/.cocoapods/repos/master/Specs找到對已應的json文件,如截圖所示:
    Snip20160717_21.png

打開json文件內容:

Snip20160717_22.png

  • 此刻,你也可以在Cocoapods官方的spec文件中查詢到對應的json文件,Cocoapods的Spec,方法如上面所示,這里省略…

自此,制作自己的開源項目支持Cocoapods下載的全部操作流程結束。

6. 更新倉庫的版本

若是修改描述文件、更新開源文件等都需要重新更新倉庫
步驟如下:

  • 修改podspectag(代碼版本號)
  • 重新trunkCocoapods服務器

今回家早了些,自己最近在寫即時通訊IM的東西,忙的好久沒上過簡書了,還好現在終于給這個知識點寫完了…晚安啦。。。

最后附上之前的參考鏈接:
CocoaPods安裝使用及配置私有庫

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容