iOS 元件化開發(二) 遠端私有庫的更新與子庫

2021-08-18 07:38:41 字數 2897 閱讀 6357

這裡以對基礎元件裡新增了乙個cache工具為例

新增完成後我們需要更新到遠端倉庫

cd 到本地倉庫的位置,執行以下操作

git add .

git commit -m '更新描述'

版本更新 這一步非常重要,為更新索引庫做準備

git tag -a '新版本號' -m '注釋'

檢視遠端倉庫,標籤數已經有2個了,點進去就可以看到0.2.0,這裡我們就不去看了

開啟你的xx.podspec檔案,將原本的版本號改為0.2.0,與剛剛的tag保持一致

pod repo push 索引庫名稱 ***.podspec

// --no-repo-update 不更新本地索引庫

// 因為剛剛已經自己手動更新過了,所以這裡我們選擇跳過更新

當我們的私有庫需要依賴其它第三方才可以正常使用時,我們就需要在spec檔案中開啟依賴,例如下面所示**,表明當前倉庫需要依賴afn和sdwebimage

s.dependency 'afnetworking', '~> 3.2.0'

s.dependency 'sdwebimage', '~> 4.3.3'

修改後更新操作同上所述,這裡就不再贅述了。

但是這裡存在乙個問題,如果來了一位新的小夥伴,他所負責的部分只需要lxfbase下的category,而lxfbase下的cache才需要依賴sdwebimage,此時他若是pod一整個lxfbase豈不是平白無故安裝了第三方依賴庫,那應該怎麼做呢?

方案就是可以通過子庫subspecs來解決因需要乙個小小的工具而依賴整個基礎元件的問題

什麼是subspecs?這裡我們可以搜尋一下sdwebimage

那接下來我們就來看看怎麼描述乙個子庫吧

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'

ends.subspec 'category' do |c|

c.source_files = 'lxfbase/classes/category/**/*'

ends.subspec 'tool' do |t|

t.source_files = 'lxfbase/classes/tool/**/*'

end

修改後再按之前的步驟更新索引庫和元件庫就可以了

pod spec lint --private --verbose
在成功更新元件庫和索引庫後我們再來搜尋一下試試

現在就可以愛裝哪個就裝哪個了,在podfile中指定要安裝的子庫就行了

pod 'lxfbase/cache'
pod install

iOS 元件化開發(二) 遠端私有庫的更新與子庫

這裡以對基礎元件裡新增了乙個cache工具為例 新增完成後我們需要更新到遠端倉庫 cd 到本地倉庫的位置,執行以下操作 git add git commit m 更新描述 git push origin master 複製 版本更新 這一步非常重要,為更新索引庫做準備 git tag a 新版本號 ...

iOS元件化開發之發布私有庫

對於需要切換原始碼和二進位制庫的庫,需要同時發布原始碼和二進位制庫,此文介紹詳細流程。修改podspec中s.version到對應版本號。規則 pod的打包和發布命令,都是驗證遠端倉庫 所以必須打出和s.version對應的tag。命令如下 git tag x.x.x git push tags每個...

ios元件化開發(一)建立元件化

ios元件化開發,類似於自己寫乙個第三方庫一樣,然後被主工程呼叫。元件化開發,需要乙個索引庫,因為每個元件都有乙個 podspec 檔案,因此需要乙個庫去專門存放索引。這類似於一本新華字典有專門的目錄,通過目錄可以快速找到對應的元件和版本。首先可以在github上建立乙個遠端索引庫。然後將該索引庫新...