iOS中 如何將自己的框架更新到cocopods上 韓俊強的博客
來源:程序員人生 發布時間:2016-08-16 18:00:55 閱讀次數:3003次
逐日更新關注:http://weibo.com/hanjunqiang
新浪微博!
為了更方便的集成第3方框架有了cocopods 的, 當我們有了相對照較好的框架的時候如何更新到cocopods 供他人參考呢?
下面我1步1步帶大家開源自己的框架。
第1步
把自己的框架更新到github
上,為了提交地址給他人下載。
這里就不詳細介紹如何把項目更新到github
上了
第2步
這個時候我們的項目已掛在github
上了
我們需要給本地的項目新建1個Podspec
描寫文件
// 進入到項目目錄下
cd xxx/xxx/xxx
// 創建Podspec文件
pod spec create “你的Podspec名字”
此時你已在項目目錄下創建了1個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" //依賴的系統庫 可以依賴多個
// 若需要依賴其他開源的第3方庫 可以寫成以下情勢 若需要有多個就復制下面代碼 添加第3方庫
// s.dependency "AFNetWorking"
// 如果需要配置依賴系統庫
// s.framework = 'SomeFramework'// 設置依賴的系統庫名稱
// s.frameworks = 'SomeFramework', 'AnotherFramework'//設置多個系統庫名稱
// 需要依賴系統的library
s.library = 'iconv'// 設置只依賴1個系統的library
s.libraries = 'iconv', 'xml2' // 設置依賴多個系統的library
// 這里是工程配置,這樣使用者就不需要手動處理,由pod自動處理了
s.xcconfig = {'HEADER_SEARCH_PATHS' =>'$(SDKROOT)/usr/include/libxml2'}
逐日更新關注:http://weibo.com/hanjunqiang
新浪微博!
然后我們設置下tag號 然后推送到git
$ git commit -m "說明"
$ git tag 0.0.1 // tag 和上面你設定的1樣 1般tag號和版本號1致
$ git push --tags
$ git push origin master
我們來驗證下他是不是符合要求。
pod lib lint "podspec名字".podspec --allow-warnings
若我們看
“你的podspec名字” passed validation
說明這個配置文件是沒問題的。
若失敗了。
我們就需要將遠程tag刪除 重新來過
刪除tag
//查看tag
git tag
//刪除1個指定的tag,并上傳1個空tag到遠程tag
git tag -d <tagname>
git push origin :refs/tags/你的tag號
在驗證通過以后我們需要將代碼提交到cocopods
pod trunk push "你的podspec名字".podspec --allow-warnings
如果沒有出錯 我們就算大功告成了。
通過pod search "項目名"去搜索你的第3方庫吧。。
逐日更新關注:http://weibo.com/hanjunqiang
新浪微博!
總結常見毛病:

問題:這類毛病怎樣辦?
- ERROR | [iOS] The `source_files` pattern did not match any file.
查了1些資料:

逐日更新關注:http://weibo.com/hanjunqiang
新浪微博!
解決方法:
解決方法:將最后提交的開源框架的類的提交碼在 xx.podspec 中改成這類:
s.source = { :git => "https://github.com/XiaoHanGe/GCTools.git", :commit => "f705f8841d569b23cb5910dda8ee1e75659ddb9f" }
s.source_files = "GCTools/*.{h,m}"
commit來自最后1次提交:在github上可以看提交記錄后面的加密碼:
git log: 也能夠在終端查看

完善解決!以下:

遇到問題請咨詢:
逐日更新關注:http://weibo.com/hanjunqiang
新浪微博!
QQ群:446310206
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈