我們開發(fā)項目不可能私有庫創(chuàng)建好以后就不管了,產(chǎn)品的更新迭代、版本的開發(fā)、修改或者優(yōu)化問題時,都需要給私有庫進行升級更新。就如沒有組件化前每開發(fā)一個版本,新拉一個分支打一個Tag,防止版本的更新造成代碼的紊亂、業(yè)務(wù)的不流暢。
我們以在私有庫新增一個頁面為例。

例
1. 代碼添加好,執(zhí)行pod install
PS:上面的代碼進行了分層,在下面會將到。分層后執(zhí)行pod install代碼消失,請看最后。
leon:Example huanghaipo$ pod install
2. 提交代碼
# 保存代碼
$ git add .
# 先提交到本地倉庫,并填寫提交描述
$ git commit -a -m "私有庫版本更新"
# git pull origin maste可能會失敗 ,提示:fatal: refusing to merge unrelated histories 原因是遠程倉庫origin上的分支master和本地分支master被Git認為是不同的倉庫,所以不能直接合并,需要添加 --allow-unrelated-histories 如果已經(jīng)綁定過這
$ git pull origin master --allow-unrelated-histories
# 推送項目到master分支上 第一次push如果報錯的話可以加上 origin 前面加上 -f
$ git push origin master
# 提交版本號 建議和 podspec文件里面寫的版本號一致
$ git tag -a '新版本號' -m '注釋'
# push到遠程分支 或者執(zhí)行g(shù)it push --tags
$ git push origin 0.0.1

提交代碼

查看遠程私有倉庫 成功
3. 修改podspec文件,更新索引庫。
1. 修改podspec文件中的版本號,版本號要和剛才的tag一致。
s.version = '0.0.2'
2. 遠程驗證podspec文件。
//--private私有庫參數(shù)
pod spec lint --private

驗證通過
3. 更新索引庫
pod repo push HPSpeccs(索引庫名) 項目名稱.podspec(podspec文件)

更新成功
查看本地索引庫,有剛才更新的版本。

查看本地索引庫
查看遠端索引庫,有剛才更新的版本。

查看遠端索引庫
4. 更新項目中的私有庫版本
不過一般執(zhí)行過第一步的pod install這一步就不用執(zhí)行了,執(zhí)行第一步的時候就已經(jīng)把代碼添加進去了。
// --no-repo-update 如果不更新版本索引庫加這條命令
pod update
第一步出現(xiàn)的問題
問題:執(zhí)行過后私有庫的代碼都沒了。
原因:我對于代碼進行分層分類,在Classes下新建文件(HPPrivateLibraryClass)將所有代碼放到這里,但是沒有告訴CocoaPods對代碼進行了分層,它在去安裝時找不到代碼。

問題
解決辦法:在HPPrivateLibrary.podspec文件中添加分層說明。
//HPPrivateLibrary 當前項目的名稱
//ViewControllers HPPrivateLibraryClass文件下的子文件 存放視圖控制器
//sss.source_files 代碼存放的路徑 *代表ViewControllers下的所有文件
s.subspec 'HPPrivateLibrary' do |ss|
ss.subspec 'ViewControllers' do |sss|
#不是真實路徑依賴 比如說ViewControllers依賴了Views,Views依賴了Models,所以不需要在寫依賴Models
sss.source_files = 'HPPrivateLibrary/Classes/HPPrivateLibraryClass/ViewControllers/*'
end
end