準(zhǔn)備工作
1. 創(chuàng)建好一個(gè)GitHub倉庫作。
2.前面建好的GitHub倉庫添加為索引倉庫。
pod repo add [spec name] [GitHub倉庫地址]
# 假設(shè)名稱為PersonalSpec
pod repo add PersonalSpec https://github/username/PersonalSpec
題外話:GitHub登錄方式改了
原來的password改為personal access token
登錄GitHub界面之后,按路徑settings -> developer settings -> New personal access token
去創(chuàng)建personal access token
該token值只顯示一次,需要復(fù)制后收藏好
正式開始
1.在GitHub上創(chuàng)建好代碼倉庫備用。
除了【準(zhǔn)備工作】期間所建以外的倉庫,作為放我們代碼的庫。
盡量不要添加readme、ignore之類的,保持倉庫是空空的。此時(shí)的遠(yuǎn)端倉庫是沒有branch的。

如果是空倉庫,進(jìn)行到第5步的時(shí)候直接可以用上面截圖紅圈部分指令即可完成推送。
溫馨提示:接下來文章中要分清這兩個(gè)倉庫。還有記得把假設(shè)的名稱用自己的庫名替換。
2. 下載Cocopods發(fā)布庫的模板
pod lib create [自己庫名]
# 假設(shè)為CodeRepo
pod lib create CodeRepo
按照你所取的名稱下載模板。下載模板途中會(huì)彈出幾個(gè)選項(xiàng),根據(jù)自己需求選擇即可。
3.開發(fā)的類庫放到指定文件夾下、配置好podspec文件
此處假設(shè)我們需要發(fā)布第三方庫的代碼工程都開發(fā)完成了。
接下來,要檢查好我們開發(fā)代碼文件和資源文件等是否在指定目錄下,默認(rèn)情況在Classes文件夾下。
哪些文件需要作為第三方庫提交cocoapods可以在podspec文件內(nèi)設(shè)置
s.source_files = 'CodeRepo/Classes/**/*'
podspec文件配置:
podspec文件的內(nèi)容因人而異。網(wǎng)上很多能搜到。
還可以去官網(wǎng)語法文檔查看。
兩次驗(yàn)證之間進(jìn)行g(shù)it倉庫的操作的說明
因?yàn)榈谝淮悟?yàn)證pod lib lint 是本地驗(yàn)證,如果本地驗(yàn)證之前已經(jīng)提交私有庫代碼到遠(yuǎn)端倉庫,如果驗(yàn)證不通過又要重新修改再提交,故而個(gè)人建議先本地驗(yàn)證通過進(jìn)行g(shù)it倉庫操作。
4. podspec本地驗(yàn)證
pod lib lint
如果私有庫依賴Cocospods以外的spec要在后面添加--sources參數(shù),值的寫法是多個(gè)地址url之間用逗號(hào)分開,cocoapods的spec地址也要寫上,格式如下:
pod lib lint --sources='私有索引庫地址,https://github.com/CocoaPods/Specs.git'
# 拿我們PersonalSpec舉例
pod lib lint --sources='https://github/username/PersonalSpec.git,https://github.com/CocoaPods/Specs.git'
驗(yàn)證成功后:
CodeRepo passed validation.
5.推送到遠(yuǎn)端倉庫和打tag
提交遠(yuǎn)端倉庫
git remote add origin [私有倉庫地址] # CodeRepo舉例:git remote add origin CodeRepo
git add .
git commit -m "日志"
# git branch 可以查看本地分支名稱,
# git branch -a 可以查看本地和遠(yuǎn)端分支名稱
git push -u origin main # main還是master根據(jù)分支決定
打tag。tag值要與podspec文件內(nèi)version值一致
git tag
git tag '0.1.0'
git tag
git push origin 0.1.0 # 或推送全部tag: git push --tags
# 可能用到的指令
刪除本地tag:git tag -d 0.1.0
刪除遠(yuǎn)端tag:git push origin :refs/tags/0.1.0
6.podspec遠(yuǎn)端驗(yàn)證
pod spec lint
如果私有庫依賴Cocospods以外的spec要在后面添加--sources參數(shù),值的寫法是多個(gè)地址url之間用逗號(hào)分開,cocoapods的spec地址也要寫上,格式如下:
pod spec lint --sources='私有索引庫地址,https://github.com/CocoaPods/Specs.git'
驗(yàn)證成功后:
CodeRepo.podspec passed validation.
7.podspec文件推送到私有倉庫
pod repo push [私有索引倉庫名] xxx.podspec
# PersonalSpec舉例
pod repo push PersonalSpec CodeRepo.podspec
# 可能用到的指令
pod repo list # 查看本地索引庫有哪些
網(wǎng)上有人說有私有庫的情況下podspec文件推送時(shí)候也需要加上--sources參數(shù)。但是我沒加也推送成功了。
加--sources的用法跟前面驗(yàn)證的一樣,格式如下:
pod repo push [私有索引倉庫名] xxx.podspec --sources='私有索引庫地址,https://github.com/CocoaPods/Specs.git'
# 按照慣例
pod repo push PersonalSpec CodeRepo.podspec --sources='https://github/username/PersonalSpec.git,https://github.com/CocoaPods/Specs.git'
到此所有發(fā)布流程就結(jié)束了。希望大家發(fā)布私有庫過程都一把過!
最后,有疑問提出、有錯(cuò)誤幫忙指出、有可優(yōu)化的或更好的寫法麻煩告知。拜拜?。?!