一、創建索引庫:存放spec文件,這裏創建成私有的
1、在碼雲上創建私有索引庫YHTestOneSpecGroup:設置爲私有庫
2、添加自己的本地遠程索引庫:pod repo add YHTestOneSpecGroup https://gitee.com/denggun/YHTestOneSpecGroup.git
3、cd到 ~/.cocoapods/repos下查看自己的本地倉庫路徑;也可以用pod repo命令查看,本地會多一個鏡像庫;如果想移除執行pod repo --remove YHTestOneSpecGroup即可
二、創建組件庫工程:
1、cd到目標文件夾執行命令pod lib create YHTestOne
2、在命令行回答完問題,將自己編的本地組件文件替換工程中的ReplaceMe.m文件
3、如果有圖片資源,則將圖片放在與Classes同級的Assets文件夾下
三、將本地組件庫添加到遠程私有倉庫
1、在碼雲上創建私有倉庫
2、將本地組件庫提交到此私有庫
2.1、cd /Users/yangyangzi/Desktop/Task/組件化/YHTestOne
2.2、git remote add origin https://gitee.com/denggun/YHTestOneDemo.git
2.3、git add .
2.4、git commit -m "描述"
2.5、git push origin master
四、修改組件工程庫的podspec文件
s.version要與tag值一致
s.homepage 私有組件庫主頁地址
s.source 私有組件庫地址
s.description 工程描述
如果有圖片資源,則打開s.resource_bundles
s.resource_bundles = {
'YHTestTwo' => ['YHTestTwo/Assets/*.png']
}
五、本地驗證本地podspec文件正確性
pod lib lint 本地驗證
pod lib lint --verbose 如果上邊命令後提示podspec文件內有error,則執行此命令詳細查看錯誤原因
pod lib lint --allow-warnings 如果podspec文件有警告也會報錯,忽略警告後則可以通過
通過則命令行會打印 YHTestOne passed validation.
六、將本地私有組件庫的改動提交到遠程倉庫
因爲在4中修改了本地組件庫podspec文件的內容,故在驗證遠程倉庫前做一次提交,保證本地和遠程一致
1、git add.
2、git commit -m ""
3、git push origin master
4、爲此私有庫打標籤
git tag 0.0.1(注意這裏的tag值一定要和podspec文件的tag值保持一致)
git push --tags
(遠程倉庫origin報錯的話fatal: Couldn't find remote ref master,通過
1》git remote -v 查看遠程倉庫配置
2》git remote rm origin 移除遠程倉庫
3》git remote add origin 倉庫地址 重新添加遠程倉庫)
七、遠程驗證本地podspec文件正確性
pod spec lint 遠程驗證
pod spec lint --verbose 如果上邊命令後提示podspec文件內有error,則執行此命令詳細查看錯誤原因
pod spec lint --allow-warnings 如果podspec文件有警告也會報錯,忽略警告後則可以通過
通過則命令行會打印 YHTestOne.podspec passed validation.
八、建立關聯--將podspec文件YHTestOne.podspec關聯到遠程索引庫YHTestOneSpecGroup
pod repo push YHTestOneSpecGroup YHTestOne.podspec
或 pod repo push YHTestOneSpecGroup YHTestOne.podspec --allow-warnings
九、查看庫是否創建成功
1、pod repo 查看是否多了一個索引
2、pod search YHTestOne 能否搜索到自建的庫,如果找不到刪除~/Library/Caches/CocoaPods/search_index.json文件再試
十、在工程中使用自己創建的私有庫
一般情況我們的Podfile文件的索引庫默認是https://github.com/CocoaPods/Specs.git,不用指明索引庫地址。但是當我們的使用其它索引庫的來源時,就要指明默認庫及其它所有用到的索引庫的地址。
例如工程testYHRepository裏用到了AFN和我自己的私有庫YHTestOne,那就應該在此工程的Podfile文件的
target 'testYHRepository' do上邊填寫兩個索引庫源
source 'https://github.com/CocoaPods/Specs.git'
source 'https://gitee.com/denggun/YHTestOneSpecGroup.git'
注意:自己的創建的私有庫一定不要跟Github上的第三方庫重名,否則會搜不到;
最好在本地驗證通過之後再打tag,因爲這是倉庫基本是最後狀態了,不用因爲改變引起tag值的重新更新