? ? ? ?接著上兩篇文章CocoaPods公有庫和CocoaPods本地私有庫,這篇就來講解下CocoaPods遠程私有庫,啥叫CocoaPods遠程私有庫?CocoaPods遠程私有庫就是庫存在遠程倉庫,權限歸自己管理,不是公開的,但可以通過source地址給伙伴們獲取自己的私有庫。公司需求要用CocoaPods管理模塊開發,一般都是做遠程私有庫,公司的代碼不能公開。
一、創建私有索引庫(Spec Repo)
? ? ? ?私有索引庫Spec Repo可以這樣理解,公有索引庫就是存放在CocoaPods的遠程倉庫且是公開的,大家都可以用到的,安裝CocoaPods的時候已經自動添加索引repo到本地了,其中master就是CocoaPods公有的索引repo。所以自己要創建一個私有的遠程倉庫存放索引庫并把索引repo添加到本地,這樣就不是公開的了,是自己私有的。如圖所示:
? ? ? ? 代碼托管除了GitHub還有碼云和coding,GitHub的私有項目時要錢的,其他兩個是免費的,我這里就用碼云來創建私有索引庫,創建點擊右上角的+選擇新建項目,如圖所示:
? ? ? ?創建私有索引庫完成后,使用命令 “pod repo add ?repo的名(如CocoaPods自帶的master) ?碼云項目spec的地址 ” ?來創建本地spec庫,這里碼云項目spec的地址有https和ssh,如果用https的話,別人要用到你的庫就要給密碼他,這樣不方便,ssh不需要輸入密碼,但第一次的配置的話要配置公鑰。
? ? ? 如果沒有配置好公鑰,執行創建本地spec庫就報沒有權限的錯誤,如圖:
? ? ? ? 然后就是生成ssh公鑰,通過命令 $ ssh-keygen 來生成ssh公鑰,通過提示操作輸入保存的密碼,我這就不演示了,我之前已經生成過,進入.ssh的路徑,用xcode打開id_rsa.pub文件,復制內容。
? ? 把復制好的ssh-rsa填到碼云的ssh公鑰,如圖所示:
? ? ? ? 碼云配置好ssh的公鑰后,在用命令執行生成本地spec庫,結果通過了,然后在repos看到多了一個remoteLib的文件就證明成功了。
用到的命令:
????pod repo ? //查詢有多少本地repo
????ssh-keygen ?//生成ssh公鑰
????pod repo add remoteLib git@gitee.com:vxchj/RemoteLibSpec.git ? ? ? ? ?//remoteLib是repo保存的名字 ?????//git@gitee.com:vxchj/RemoteLibSpec.git是在碼云創建私有索引庫的地址????
二、創建Pod私有庫所需要的項目工程文件
????這里就不詳細講解創建私有項目了,大家用過的應該都知道,直接上圖展示。
????clone到本地桌面
三、通過CocoPods的官方命令創建Pod項目工程
? ? ? ?這也是在桌面創建pod項目工程,使用命令創建Pod項目工程文件 $ pod lib create?RemoteLibQiuyh ,RemoteLibQiuyh是工程名,然后等待一下會出現很多選擇,按照提示選擇輸入就OK,下載完就會自動打開工程。
打開剛剛下載好的工程,把自己要做的庫放進去,然后刪除多余的ReplaceMe.m文件,如圖所示:
????????替換好要上傳的庫之后,cd到項目中的Example,執行 $ pod install 安裝本地庫,看能不能安裝成功,如圖:這時候項目就相當于本地私有庫項目了。
四、pod項目關聯遠程私有倉庫、修改.podspec文件和上傳遠程倉庫
? ? ? ?有了本地私有庫項目后,我們要的是遠程私有庫,所以要修改.podspec文件并且上傳庫到倉庫。修改.podspec文件這里不多說,詳情請看CocoaPods公有庫,這一步可以在上傳到倉庫之后再修改也可以,我這里就先修改了,直接上圖,
剛才第二步驟已經創建遠程倉庫了,也clone到本地了,把通過pod命令生成的pod項目的.git文件替換成遠程私有倉庫的.git,這樣就關聯遠程倉庫了。
替換成.git文件關聯遠程私有倉庫后,就是上傳到遠程倉庫,詳細步驟我就不細說了,CocoaPods公有庫有說明
配置好.podspec文件,接著就是把代碼上傳到遠程倉庫,通過
??? $ git add . ; ?
????$ git commit -m “XX” ?;?
????$ git push。
打tag,打的tag一定要對應版本號,因為.podspec文件配置已經寫好跟版本號一樣的,通過
?? ?$ git tag '0.1.0' ;
? ? $ git push --tags;
上傳成功之后倉庫就有源代碼和打tag了
五、驗證pod是否能通過和提交pod
????????這里就不詳細說明了,請看CocoaPods公有庫,我就直接操作上圖,這里要詳說的是,我直接用pod spec lint --allow-warnings來驗證,--allow-warnings是忽略警告,然后就是提交到spec repo,通過命令pod repo push remoteLib RemoteLibQiuyh.podspec ,remoteLib是之前生成的本地repo名,可以進入repos查看,或者直接命令 pod repo查看,RemoteLibQiuyh.podspec就是你笨項目的.podspec文件,如圖所示就是通過驗證并且提交成功。(注:如果沒有改命令就要注冊CocoaPods賬號,詳情請看CocoaPods公有庫)
提交pod成功后搜索一下看能不能搜索到,通過命令pod search RemoteLibQiuyh搜索,結果可以搜索的到,那證明制作完成。
用到的命令:
????$ pod repo ? ?//查詢repo
????$?pod spec lint --allow-warnings ? ?//遠程本地pod驗證
????$?pod repo push remoteLib RemoteLibQiuyh.podspec ? //提交pod到自己的私有索引庫,remoteLib是之前生成的本地repo名
????$?pod search RemoteLibQiuyh ? //查詢庫
六、如何使用
????????這不知你自己個人使用,還要整個團隊使用,那么怎樣使用呢,直接按照正常的邏輯直接在Podfile文件填寫pod 'RemoteLibQiuyh', '~> 0.1.0',然后pod install安裝??那當然不行了,所謂的私有庫就是不能所有的能都能用,只有你給誰用誰就可以用。
? ? ? ? 首先在在Podfile文件填寫source '私有索引庫的地址',官方的CocoaPods地址就是source 'https://github.com/CocoaPods/Specs.git',這時候你要填寫你對應的地址,可以用個pod repo 查看。如果要用到其他CocoaPods的第三方庫就要把官方的CocoaPods地址也添加上。如圖所示:
填寫完之后就通過pod install安裝。
注意:如果是隊友的話,直接這樣安裝時會報錯的,說沒有什么權限的,那是沒有在自己的git賬號設置中安裝ssh公鑰,其安裝方法跟步驟一一樣的,生成添加到賬號中的ssh公鑰,然后在pod install安裝就OK了。
七、版本更新
版本更新跟之前的步驟差不多,這就簡單說一下步驟:
????1.修改.podspec文件中的版本號;
????????s.version? ? ? = "0.1.1" //修改0.1.1版本,不能是之前的版本,要不提交不成功
????2.上傳到遠程倉庫;
????????$ git add . ; ?
? ??? ??$ git commit -m “XX” ?;?
? ??? ??$ git push。
????3.打tag并上傳;
????????$ git tag '0.1.1' ;
? ?? ???$ git push --tags;
????4.驗證pod并提交到pod。
?? ?????$?pod repo ? ?//查詢repo
? ?? ???$?pod spec lint --allow-warnings ? ?//遠程本地pod驗證
? ?? ???$?pod repo push remoteLib RemoteLibQiuyh.podspec ? //提交pod到自己的私有索引庫,remoteLib是之前生成的本地? ??repo名
? ??? ??$?pod search RemoteLibQiuyh ? //查詢庫