第一部分:使用CocoaPods創(chuàng)建私有庫
私有庫與公有庫的區(qū)別
相同之處:都需要將pod配置文件(podspec)上傳至CocoaPads唁桩;在本機中路徑都為~/.cocoapods/repos/。
不同之處:公有方庫是開放的朴爬,一般放在github中,而私有庫一般適用于代碼存放于私有倉庫橡淆,只有自己能訪問到召噩,pod配置文件也放在私有倉庫母赵,但同樣要上傳到CocoaPods。
本文與其他社區(qū)文章的區(qū)別
一般情況下我們只需要使用git更新迭代代碼部分具滴,不需要管理pod配置文件凹嘲,每一次提交pod配置文件都需要經(jīng)過CocoaPods的驗證,如下:
? LHTools git:(master) ? pod repo add LHToolsSpecs https://git.oschina.net/lhtools/LHToolsSpecs.git
? LHTools git:(master) ? pod repo push LHToolsSpecs LHTools.podspec --allow-warnings
使用Repo來管理pod配置文件當(dāng)然省事不少构韵,他包含git+代碼驗證周蹭,倘若你寫的的庫只是個自定義控件,就很容易通過CocoaPods的驗證疲恢,如果你的庫是公司內(nèi)部私有的凶朗,且包含很多功能模塊或依賴許多第三方庫的私有模塊,可能很難通過CocoaPods的驗證显拳,你可能會因此而浪費許多時間來通過驗證棚愤,本文是通過自己使用git管理pod配置文件的方式(而不是用Repo來管理)來繞過CocoaPods的驗證,每次跟新代碼時需要分別提交代碼和pod配置文件杂数。
具體步驟
1.創(chuàng)建代碼倉庫
代碼倉庫:https://git.oschina.net/abc/LHTools.git
pod引索文件倉庫:https://git.oschina.net/abc/LHToolsSpecs.git
2.創(chuàng)建代碼倉庫
? IOSCodes git:(master) ? pod lib create xxx
1.編程語言:Objc
2.是否需要一個例子工程:YES
3.選擇一個測試框架:None宛畦;3.是否基于View測試
4.類的前綴:LH
3.修改pod配置文件
這是一個Ruby文件,Xcode無法語法高亮耍休,可以使用SubLime Text3打開刃永,修改完后進(jìn)入Example中執(zhí)行pod install進(jìn)行安裝測試,觀察Pods/Development Pods目錄羊精,私有庫寫好后斯够,提交代碼到倉庫
4.提交代碼
? LHTools git:(master) ? git add .
? LHTools git:(master) ? git commit -s -m "Initial Commit of Library"
? LHTools git:(master) ? git remote add origin https://git.oschina.net/abc/lhtools.git
? LHTools git:(master) ? git push -u origin master
? LHTools git:(master) ? git add .
? LHTools git:(master) ? git commit -m 'first changed’
5.提交pod配置文件
? LHTools git:(master) ? git tag ‘0.1.0'
? LHTools git:(master) ? git push —tags
? LHTools git:(master) ? pod repo add LHToolsSpecs https://git.oschina.net/abc/LHToolsSpecs.git
? LHTools git:(master) ? pod repo push LHToolsSpecs LHTools.podspec --allow-warnings
## 查看本地Repo倉庫
? LHTools git:(master) ? pod search LHTools
到這里就基本完成了更新代碼、別人使用CocoPods拉去自己的代碼的所有工作了喧锦,到這里读规,你需要搞清楚兩件事:
1、如何管理代碼燃少?
在項目根文件夾(也就是NewIM.specs所在的文件夾)執(zhí)行標(biāo)準(zhǔn)git命令進(jìn)行本地倉庫和遠(yuǎn)程倉庫的操作束亏,在更新版本前記得打上tag。
2阵具、如何讓Spec Repo知道我的代碼更新了碍遍?
確保代碼已經(jīng)更新到私有云,并且已經(jīng)打上了新的tag阳液,然后執(zhí)行:pod repo push LHToolsSpecs LHTools.podspec --allow-warnings將代碼引索文件上傳到私有云(https://git.oschina.net/abc/LHToolsSpecs.git)并與Spec Repo中名稱為的”LHToolsSpecs”的目標(biāo)進(jìn)行關(guān)聯(lián).
第二部分:發(fā)布自己的pods到CocoaPods trunk
確保CocoPods已經(jīng)更新到最新版
? LHTools git:(master) ? sudo gem install cocoapods
注冊trunk怕敬,填入郵箱和用戶名,然后郵箱中會收到一條郵件帘皿,點擊郵件鏈接完成trunk注冊
? LHTools git:(master) ? pod trunk register luohancc@163.com 'LuohanCC' —verbose
使用下面的命令可以向trunk服務(wù)器查詢自己的注冊信息:
? LHTools git:(master) ? pod trunk me
將podspec文件通過trunk推送給CocoaPods服務(wù)器
第三部分:代碼與pod配置文件的更新:
// 1.git提交代碼并打上tag
? LHTools git:(master) ? git add .
? LHTools git:(master) ? git commit -m "更新md"
? LHTools git:(master) git push -u origin master
? LHTools git:(master) git tag '1.0'
? LHTools git:(master) git push --tags
// 2.git提交pod配置文件(同上)
......
// 如果你想更快更新配置文件并提交到trunk东跪,就使用下面這種方式吧,但是提交前必須經(jīng)使用pod lib link驗證。
? LHTools git:(master) ? pod lib lint LHToolsSpecs.podspec --allow-warnings
? LHTools git:(master) pod trunk push LHToolsSpecs.podspec --allow-warnings