想要發(fā)布pod,要創(chuàng)建兩個git倉庫,一個用于存放要分享的源代碼,一個用于存放podspec的版本信息
總體思路:
1、先創(chuàng)建一個倉庫用于存放podspec的版本信息
2、再創(chuàng)建一個目錄用于存儲組件源代碼,在創(chuàng)建的源代碼目錄后使用pod創(chuàng)建一個發(fā)布源代碼的模板,把要分享的代碼放到ReplaceMe目錄下
3、編寫podspec,在Example目錄下的pod install,然后驗證podspec的有效性
4、然后把podspec push到用于存放podspec的版本信息的倉庫,在使用到私有庫項目的podfile添加source 獲取podspec中源代碼的倉庫地址進行下載
具體步驟:
1、在git服務(wù)器創(chuàng)建一個ZGSpecs倉庫(不要勾選README,如果用下面方式關(guān)聯(lián)),在本地創(chuàng)建一個目錄與存放podspec的版本信息的倉庫關(guān)聯(lián)起來
//從命令行創(chuàng)建一個新的倉庫
touch README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com:99/zly/ZGSpecs.git
git push -u origin master
2、在 ~/.cocoapods/repos 添加私有repo,用于使用私有庫的項目中通過pod install命令,下載私有庫,最后驗證添加私有repo的有效性
pod repo add ZGSpecs https://github.com:99/zly/ZGSpecs.git
//ZGSpecs為 ~/.cocoapods/repos 目錄下repo名 , 后面的url為用于存放podspec的版本信息的倉庫地址
通過下面命令查看repo列表
pod repo list
驗證repo的有效性
cd ~/.cocoapods/repos/ZGSpecs //ZGSpecs為創(chuàng)建的私有repo名
pod repo lint //驗證遠程是否通過
3、在本地創(chuàng)建一個存放要分享源代碼的目錄,創(chuàng)建pod模板,根據(jù)提示創(chuàng)建,創(chuàng)建完成后會自動打開項目
//1、在本地對應(yīng)的目錄執(zhí)行創(chuàng)建模板
pod lib create ZGKXCommonComponent
//2、把想要分享的(.h,.m)文件放在ReplaceMe.m 同級目錄,刪除ReplaceMe.m文件
4、配置podspec包括 source_files、dependency、source、version等信息,若有子文件夾想要設(shè)置子模塊,需要配置subspec,對編輯好的podspec進行驗證,驗證通過后與存放要分享源代碼的Git服務(wù)器關(guān)聯(lián)
//1、配置podspec格式如下
//pod名
s.name = 'ZGKXCommonComponent'
//版本號
s.version = '0.0.1'
//要分享源代碼的倉庫地址
s.source = { :git => 'https://github.com:99/zly/ZGKXCommonComponent.git', :tag => s.version.to_s
//源文件地址
s.source_files = 'ZGKXCommonComponent/Classes/**/*'
//設(shè)置第三方庫的依賴
s.dependency 'FMDB', '~>2.7.2'
//子模塊
s.subspec 'ZGConfig' do |s|
s.source_files = 'ZGKit/Classes/ZGConfig/*'
s.public_header_files = 'ZGKit/Classes/ZGConfig/*.h'
end
//2、找到Example下面的podfile文件進行pod install
//3、驗證podspec
pod lib lint --allow-warnings #本地驗證,如果驗證成功會提示ZGKXCommonComponent passed validation.
//4、與存放要分享源代碼的Git服務(wù)器關(guān)聯(lián)
git add .
git commit -m "提交要發(fā)布的源代碼"
git remote add origin https://github.com:99/zly/ZGKXCommonComponent.git
git push -u origin master
5、提交當前代碼的tag,tag版本號和podspec的 s.version兩者必須統(tǒng)一
git tag '0.0.1' && git push --tags //每次提交更新都需要更新
6、同步podspec信息到git服務(wù)器
1、把最新的podspec版本信息同步給存放podspec信息的本地私有倉庫repo
2、同步給本地私有倉庫repo后,本地的私有repo會把最新的podspec信息,push到用于存放podspec的版本信息的git服務(wù)器倉庫中
pod repo push ZGSpecs ZGKXCommonComponent.podspec --allow-warnings --verbose
// ZGSpecs為 ~/.cocoapods/repos目錄下文件夾名
// ZGKXCommonComponent.podspec為要分享代碼目錄下的文件
// --verbose為顯示執(zhí)行詳情
7、組內(nèi)成員如何使用發(fā)布的私有庫?
//1、組內(nèi)成員想要使用你的私有庫,需要用以下命令在~/.cocoapods/repos目錄下添加ZGSpecs
source 'https://github.com:99/zly/ZGSpecs.git' //在項目的podfile添加source獲取倉庫地址,下載代碼
source 'https://github.com/CocoaPods/Specs.git' //引用的cocoaPod源也需要指定,不然所有的第三方庫都去ZGSpecs這個repo去找了
//2、為了每次都是使用的最新的私有庫代碼,需要在pod install之前,執(zhí)行下面命令檢查是否私有庫有更新
pod repo update ZGSpecs --verbose #ZGSpecs是自己本地repo名稱