創建私有組件庫

一、準備工作

1、gitlab內部建一個空的倉庫,用于托管模塊的代碼;
2、通過執行命令pod lib create SCDataReporterLib創建pod倉庫模版;

二、配置podspec文件

1、主頁、git地址、版本、tag
2、其中source填寫git地址,dependency配置依賴的一些三方庫,按規范走的話version和tag保持一致,也便于后期維護;

三、 封版

代碼提交 & 關聯源

git init
git remote add origin xxx.git
git add .
git commit -m "init"
git push -u origin master 

打tag

git tag '0.10'
git push --tags

四、創建私有spec Repo

1、執行 pod repo add MNKitSpecs xxx索引庫地址,此時會發現~/.cocoapods/repos目前下生成了MNKitSpecs的文件夾以及對應的版本


圖片.png

2、驗證spec
執行pod spec lint,若驗證通過可以繼續執行步驟3;
由于我封的庫依賴了私有庫SCBaseLib,驗證不通過,會在問題匯總中詳細描介紹;
3、推送spec
執行pod repo push mySpecs pod_test.podspec
推送成功了在遠程倉庫是可以看到的


圖片.png

五、接入使用

1、配置source 'xxx.git';
2、pod 'XXXReporter', '0.2.7'
3、cd到podfile所在的目錄下,執行pod update進行下載私有庫XXXReporter;

六、問題匯總

問題一
驗證spec報錯


圖片.png

原因:

默認情況cocoapods會去github的源查找,及https://github.com/CocoaPods/Specs.git,由于依賴的SCBaseLib是一個私有庫,當然找不到了。

解決方式
通過指定源的方式去查找驗證,執行pod spec lint --verbose --use-libraries --allow-warnings --sources='xxx.git, https://github.com/CocoaPods/Specs.git';其中參數--verbose是展示詳細的信息,不需要的話可以去掉;這個參數--use-libraries很重要。

問題二
push spec失敗
原因:

和上一個是同樣的問題,push的時候也會自動進行驗證spec
解決方式

方式1:通過指定源的方式去push,執行pod repo push SRMKitSpecs SCDataReporter.podspec --sources='xxx.git, https://github.com/CocoaPods/Specs.git' --allow-warnings --use-libraries
方式2:關閉驗證,畢竟已經驗證過了,直接push就好了;

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