iOS中 如何將自己的框架更新到cocopods上 韓俊強的部落格
阿新 • • 發佈:2019-02-18
為了更方便的整合第三方框架有了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