利用 CocoaPods 建立私有倉庫

? ? ? 在開發(fā)過程中,項目會積累很多可以復(fù)用的代碼包,有些我們不想開源,又想像開源庫一樣在CocoaPods 中管理、使用它們,那么通過私有倉庫來管理就很必要。這種方式也可以用來模塊化我們的項目。

實踐:

例如把項目中 CustomController 的一些公共組件抽取出來進行 Pods 方式的管理

有兩種方式:第一種是通過本地的方式管理;

第二種是將代碼托管到 git,創(chuàng)建私有 podspec 的方式;

下面會分開介紹具體的實施過程。

一、本地方式:

1.新建一個工程 ManageLocalCode,新建 Test 類或者直接拖入已經(jīng)封裝好的公共組件,這個 工程專門存放公共組件。

注意:文件路徑一定要填寫正確

(1)如果單純測試,在工程里創(chuàng)建新類 Test,其工程地址在配置文件中填寫為:

s.source_files? = “ManageLocalCode/Test.{h,m}”

(2)如果使用 subspec 分模塊功能,按照不同的模塊對文件目錄進行整理,比如我們把項目中的 CustomController 的部分公共組件復(fù)制進來,其工程地址在配置文件中填寫為:

s.source_files = ‘ManageLocalCode/CustomController/Classes/**/*'

( 我們采用這種分模塊的方式,關(guān)于source_files是什么后面有介紹)

2.在工程根目錄下,新建 podspec 文件 ManageLocalCode.podspec。

可以通過命令 pod spec create ManageLocalCode,這樣生成的 spec 文件各個條目都有,

比較繁多,根據(jù)需要填寫,重要的代碼具體介紹如下:

3.輸入命令 pod lib lint 進行驗證,驗證通過后進行下一步。驗證不通過會有提示,按照提示修改 ManageLocalCode.podspec 配置文件;Xcode 內(nèi)的警告可以通過命令 pod lib lint --allow-warnings 忽略。

4.另外新建一個工程 SouFunDemo,來引入 ManageLocalCode 的代碼。并通過命令 pod init新建 podfile 文件,path 是 podspec 的本地路徑。配置如下:

5. pod install。pod 成功之后,在 Development pods 可以看到我們的代碼。查看 console 輸出 "0"。


二、創(chuàng)建私有pod,代碼用git管理的方式:

假如某個項目中有同事需要使用你的代碼,那么本地代碼的方式就不太友好了??梢詫⒋a托管到git,創(chuàng)建私有podspec,其他人只需要用git上的podspec就可以了。

1.將本地代碼托管到git。需要兩個 git 倉庫:CustomController 和 SouFunSpec;一個放開發(fā)代碼,一個專門放 podspec 文件。因為 github 的私有倉庫是收費的,這里用的是 oschina 的 git 管理,如果公司內(nèi)部使用的話,需要在自己的服務(wù)器搭建 git。

準備工作:

命令行->

pod repo add SouFunSpecs https://git.oschina.net/cooxu/SouFunSpec.git


2.配置 CustomController.podspec

(1)clone 項目到本地,提交忽略文件;

(2)工程根目錄下,新建.podspec文件

pod spec create?CustomController

(3)配置 CustomController.podspec ,參考上面本地方式,這里需要改動的:

source 路徑為? s.source? = { :git => "https://git.oschina.net/cooxu/ CustomController.git", :tag => "0.0.1" }

source_files 路徑為代碼的相對路徑

s.source_files="CustomController/CustomController/XXTool.{h,m}"

(4)本地驗證.podspec文件 pod lib lint

本地驗證必須通過,按照提示修改 error,Xcode警告可以用

pod lib lint --allow-warnings 忽略掉。

(5)將配置好的CustomController.podspec 文件 push 到 git 服務(wù)器后打 tag,tag值和.podspec配置文件中保持一致

(6)驗證遠程庫?pod spec lint;輸出 CustomController.podspec passed validation. ? ? ? ? 為成功

3.私用庫 XXSpec 中添加工具庫 CustomController

pod repo push?XXSpec?CustomController.podspec

此時查看 XXSpec,工具庫的配置文件已經(jīng)被 push 過來

通過~/.cocoapods/ 前往文件夾,可以看到 cocoaPods 中存在了我們的私有庫

注:master 文件里面是其他我們可以Pod的第三方開源庫,初次安裝cocoaPods時,就是從source 'https://github.com/CocoaPods/Specs.git' 中 clone 到我們本地的。

4.使用我們的私有庫

(1)新建一個 demo 程序

pod search CustomController;搜索到了我們的私有庫

(2)Podfile 文件配置注意一定要填寫 source,否則會導(dǎo)致無法安裝

(3)pod install 安裝完成后

打開我們的 TestPodFrameworkDemo.xcworkspace,可以看到我們的私有庫

已經(jīng)存在Pods中,導(dǎo)入頭文件,進行測試。

總結(jié):通過上面的方式,我們可以把某些模塊獨立出來,建立我們自己的私有庫,方便項目管理,在以后的新項目中也可以通過 Pods 的方式快速集成。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容