iOS 組件化開發(二):遠程私有庫的更新與子庫

在上一篇【iOS 組件化開發(一):遠程私有庫的基本使用】中咱們已經實戰了遠程私有庫的基本操做,可是組件不可能上傳一次就完事了,隨着業務的增長,咱們的組件可能還須要添加更多的東西,或者修復一些問題,這就須要咱們對私有庫代碼進行升級與維護git

這裏以對基礎組件裏添加了一個Cache工具爲例bash

添加Cache工具

添加完成後咱們須要更新到遠程倉庫微信

1、更新遠程倉庫

cd 到本地倉庫的位置,執行如下操做框架

一、代碼更新

git add .
git commit -m '更新描述'
git push origin master
複製代碼

代碼升級

二、版本更新

版本更新 這一步很是重要,爲更新索引庫作準備工具

git tag -a '新版本號' -m '註釋'
git push --tags
複製代碼

版本升級

查看遠程倉庫,標籤數已經有2個了,點進去就能夠看到0.2.0,這裏咱們就不去看了 組件化

2、修改描述文件並更新索引庫

一、修改Sepc

打開你的xx.podspec文件,將本來的版本號改成0.2.0,與剛剛的tag保持一致post

s.version = '0.2.0'
複製代碼

二、驗證遠程Spec

pod spec lint --private
複製代碼

驗證遠程Spec

三、更新索引庫

pod repo push 索引庫名稱 xxx.podspec
複製代碼

更新索引庫

3、更新使用

// --no-repo-update 不更新本地索引庫
// 由於剛剛已經本身手動更新過了,因此這裏咱們選擇跳過更新
pod update --no-repo-update
複製代碼

更新框架

更新成功


4、第三方依賴

當咱們的私有庫須要依賴其它第三方纔能夠正常使用時,咱們就須要在spec文件中開啓依賴,例以下面所示代碼,代表當前倉庫須要依賴AFN和SDWebImagespa

s.dependency 'AFNetworking', '~> 3.2.0'
s.dependency 'SDWebImage', '~> 4.3.3'
複製代碼

修改後更新操做同上所述,這裏就再也不贅述了。3d

可是這裏存在一個問題,若是來了一位新的小夥伴,他所負責的部分只須要LXFBase下的Category,而LXFBase下的Cache才須要依賴SDWebImage,此時他如果pod一整個LXFBase豈不是無緣無故安裝了第三方依賴庫,那應該怎麼作呢?code

方案就是能夠經過子庫Subspecs來解決因須要一個小小的工具而依賴整個基礎組件的問題

5、子庫Subspecs

什麼是Subspecs?這裏咱們能夠搜索一下SDWebImage

pod search 'SDWebImage'
複製代碼

Subspecs

能夠看到,若是咱們只須要用到SDWebImage中的GIF功能,那麼並不須要將整個SDWebImage都下載下來,在Podfile中將~~pod 'SDWebImage'~~ 改成 pod SDWebImage/GIF便可單獨使用這一功能

那接下來咱們就來看看怎麼描述一個子庫吧

子庫格式

s.subspec '子庫名稱' do |別名|

end
複製代碼

由於這裏已經分離出子庫了,因此s.source_filess.dependency就不能這麼使用了,須要咱們在子庫裏分別指定,因此咱們直接把原來的s.source_filess.dependency都註釋掉。寫法參考以下

# s.source_files = 'LXFBase/Classes/**/*'
# s.dependency 'SDWebImage', '~> 4.3.3'

s.subspec 'Cache' do |c|
  c.source_files = 'LXFBase/Classes/Cache/**/*'
  c.dependency 'SDWebImage', '~> 4.3.3'
end

s.subspec 'Category' do |c|
  c.source_files = 'LXFBase/Classes/Category/**/*'
end

s.subspec 'Tool' do |t|
  t.source_files = 'LXFBase/Classes/Tool/**/*'
end
複製代碼

修改後再按以前的步驟更新索引庫和組件庫就能夠了

ps: 在添加第三方依賴描述後作驗證或者上傳操做可能會很慢,由於它在克隆第三方庫如SDWebImage,有興趣的能夠在命令後面加入--verbose來查看詳情狀況

pod spec lint --private --verbose
複製代碼

在成功更新組件庫和索引庫後咱們再來搜索一下試試

pod search 'LXFBase'
複製代碼

subspec添加成功

如今就能夠愛裝哪一個就裝哪一個了,在Podfile中指定要安裝的子庫就好了

pod 'LXFBase/Cache'
複製代碼
pod install
複製代碼

安裝指定子庫與依賴庫

微信公衆號
相關文章
相關標籤/搜索