1. 程式人生 > >iOS中 如何將自己的框架更新到cocopods上 韓俊強的部落格

iOS中 如何將自己的框架更新到cocopods上 韓俊強的部落格


為了更方便的整合第三方框架有了cocopods 的, 當我們有了相對比較好的框架的時候如何更新到cocopods 供他人蔘考呢?

下面我一步一步帶大家開源自己的框架。

第一步

把自己的框架更新到github 上,為了提交地址給他人下載。
這裡就不詳細介紹如何把專案更新到github上了

第二步

這個時候我們的專案已經掛在github上了
我們需要給本地的專案新建一個Podspec描述檔案

// 進入到專案目錄下

cd xxx/xxx/xxx

// 建立Podspec檔案

pod spec create “你的Podspec名字”


此時你已經在專案目錄下建立了一個Podspec檔案了
這個時候我們需要對他進行編輯

注意:最好用xcode 去編輯 防止錯誤 只能輸入英文標點
Pod::Spec.new do |s|
s.name = “專案名字”
s.version ="版本號"
s.summary = "專案介紹"
s.homepage = "你的主頁地址"
s.license = "MIT" //這裡就選這個許可證
s.author ={"你的名字" => "郵箱"}
s.platform =iOS,"最低支援的系統"
s.source ={git =>"專案git地址",tag =>"tag號"}
s.source_files = "text/*/.(h.m)" //這裡是專案路徑要傳的檔案
s.framework ="UIKit" //依賴的系統庫 可以依賴多個
// 若需要依賴其他開源的第三方庫 可以寫成下列形式 若需要有多個就複製下面程式碼 新增第三方庫
// s.dependency "AFNetWorking"
// 如果需要配置依賴系統庫
// s.framework = 'SomeFramework'// 設定依賴的系統庫名稱
// s.frameworks = 'SomeFramework', 'AnotherFramework'//設定多個系統庫名稱
// 需要依賴系統的library
s.library = 'iconv'// 設定只依賴一個系統的library
s.libraries = 'iconv', 'xml2' // 設定依賴多個系統的library
// 這裡是工程配置,這樣使用者就不需要手動處理,由pod自動處理了
s.xcconfig = {'HEADER_SEARCH_PATHS' =>'$(SDKROOT)/usr/include/libxml2'}

然後我們設定下tag號 然後推送到git
$ git commit -m "說明"
$ git tag 0.0.1 // tag 和上面你設定的一樣 一般tag號和版本號一致
$ git push --tags
$ git push origin master

我們來驗證下他是否符合要求。

pod lib lint "podspec名字".podspec --allow-warnings

若我們看

“你的podspec名字” passed validation
說明這個配置檔案是沒問題的。

若失敗了。
我們就需要將遠端tag刪除 重新來過

刪除tag
//檢視tag
git tag
//刪除一個指定的tag,並上傳一個空tag到遠端tag
git tag -d <tagname>
git push origin :refs/tags/你的tag號

在驗證通過之後我們需要將程式碼提交到cocopods

pod trunk push "你的podspec名字".podspec --allow-warnings

如果沒有出錯 我們就算大功告成了。

通過pod search "專案名"去搜索你的第三方庫吧。。

總結常見錯誤:


問題:這種錯誤怎麼辦?

- ERROR | [iOS] The `source_files` pattern did not match any file. 
查了一些資料:

解決方法:
解決方法:將最後提交的開源框架的類的提交碼在 xx.podspec 中改成這種:

s.source  = { :git => "https://github.com/XiaoHanGe/GCTools.git", :commit => "f705f8841d569b23cb5910dda8ee1e75659ddb9f" }
s.source_files  = "GCTools/*.{h,m}"

commit來自最後一次提交:在github上可以看提交記錄後面的加密碼:

git log:   也可以在終端檢視

完美解決!如下:


遇到問題請諮詢:

   QQ群:446310206