ios開發分析:CocoaPods私有庫建立與使用

ios8988發表於2018-09-12

一、cocoapods的安裝

這裡不多說,直接使用這個命令進行安裝

sudo gem install cocoapods

二、建立一個私有索引庫

2.1 在託管平臺建立一個專案

這裡可以是公司的git,也可以是例如github上的私有倉庫,因為具有許可權的庫才是私有庫,如果是不設定許可權的,那麼就是公有庫了。當做一個普通的git專案建立就可以了。例如:

ssh://git@git.rengfou.com/ian/IANSpecs.git

2.2 將託管平臺的索引庫地址新增到本地的repo倉庫中去

pod repo add IANSpecs ssh://git@git.rengfou.com/ian/IANSpecs.git

三、cocoapods私有庫建立

3.1 利用模板建立私有庫

3.1.1 模板的初始化

進入對應的目錄,在終端下執行

pod lib create UtilsDemo

如下就是建立的過程:

下面在對應的路徑下(我這裡是桌面)就會出現一個UtilsDemo資料夾

我們開啟這個檔案,是這樣的

3.1.2 podspec轉podspec.json

這一步也可以不改,json檔案只是更容易編輯以及理解。

這裡為了方便使用,我們把UtilsDemo.podspec檔案轉換為UtilsDemo.podspec.json檔案,在終端輸入如下命令

pod ipc spec UtilsDemo.podspec >> UtilsDemo.podspec.json

3.1.3 編寫元件庫程式碼

把核心的程式碼拖入到Class資料夾中去
這裡我以UIAlertView+Blocks.h為例,目錄下的ReplaceMe.m資料夾可以刪除掉。
然後進入Example資料夾,首次使用pod install進行安裝
可以發現Development Pods下已經有了UIAlertView+Blocks.h

3.1.4 元件庫程式碼提交到git上

這裡的git指的是這個UtilsDemo自己的遠端git,和索引庫不是一個git。

然後我們使用如下命令,將本地的這個UtilsDemo關聯到遠端

git remote add origin https://git.rengfou.com/ian/UtilsDemo.gitgit push -u origin master

3.1.5 建立tag並編寫描述檔案

我們使用如下命令建立一個0.1.0的tag,並提交到遠端倉庫

git tag -a 0.1.0 -m "Release version 0.1.0"git push origin --tags

我們使用編輯器開啟UtilsDemo.podspec.json檔案,當然也可以使用PlistEdit軟體去開啟,更直觀。ios開發稽核交流群 869685378 
如圖:

把預設的內容改成自己的,注意地址以及tag版本號,其中dependencies中就是我們這個私有庫要依賴的公有庫,這裡我以帶版本號的JSONModel和不帶版本號的AFNetworking為例。

3.2 向索引庫提交spec

我們使用如下兩行命令分別進行驗證檢查本地和遠端,這裡我們把警告忽略掉。

pod lib lint --allow-warningspod spec lint --allow-warnings

然後執行如下命令新增到spec中去

pod repo push IANSpecs UtilsDemo.podspec.json

如果出現The UtilsDemo.podspec.json specification does not validate.錯誤

我們可以使用如下命令再嘗試

pod repo push IANSpecs UtilsDemo.podspec.json --verbose --use-libraries --allow-warnings

看到如下的顯示,則代表成功了。IOS,馬甲包,低要求,內容開發沒有限制,報酬豐厚,實力誠信 Q:782 675 105 長期合作,不做預付

四、私有庫的開發與釋出

這一步是比較重要的,因為我們平時開發的時候,這一步是要頻繁使用的。
例如現在有新的需求了,我要在UtilsDemo元件中加入新的檔案haha.h,而我這個haha.h還依賴了SDWebImage公有庫。我拉一個新的分支test,然後開啟UtilsDemo.podspec.json檔案,新增把SDWebImage新增進去

在Class把haha.h放入,
然後在Example資料夾中執行pod update
如圖:

然後將程式碼commit到git上,push到遠端。
我們在要使用此元件的工程中直接指定此分支就可以了。
使用方式見5.2

下面我們要把剛才的test分支程式碼釋出出去,我們把test分支合併到master分支,然後打一個tag名為1.0.0,
並修改UtilsDemo.podspec.json檔案中的版本號。

然後更新spec

pod repo push IANSpecs UtilsDemo.podspec.json --verbose --use-libraries --allow-warnings

然後我們就可以按照下面5.1的方式進行使用了。

五、元件化過程中使用私有庫

5.1 普通使用

在某個工程中要引入這個私有庫,那麼我們要開啟這個工程的Podfile檔案,然後新增上我們們私有庫的source地址:

pod install 之後就可以在工程是看到,私有庫引用成功了

這裡的方法和我們們平時使用的公有庫方式一樣。

5.2 指定git地址和分支使用

例如現在某業務線在開發新的功能,他修改了UtilsDemo元件的程式碼,為了不影響主分支的程式碼,可以指定test分支進行開發並引入使用。我們修改Podfile檔案如下:

六、總結

“CocoaPods私有庫建立與使用”只是iOS元件化過程中的第一步,如有錯誤歡迎指正!

相關文章