iOS組件化創(chuàng)建私有Pod庫(kù)

1. 在遠(yuǎn)程新建兩個(gè)git倉(cāng)庫(kù)。一個(gè)是用來放組件化代碼的倉(cāng)庫(kù),一個(gè)是用來放.podsepc索引的倉(cāng)庫(kù)。

1.1 本地建一個(gè)工程。(也可以用命令pod lib create name 會(huì)自動(dòng)生成一個(gè)xcode項(xiàng)目,并且會(huì)自動(dòng)生成.podspec文件),關(guān)聯(lián)遠(yuǎn)程組件化代碼倉(cāng)庫(kù)。

// 命令行操作
git remote add origin 遠(yuǎn)程倉(cāng)庫(kù)地址
git status
git add . 
git commit -m "提交描述"
git pull origin 分支名字

如果第一次pull失敗了,可以用git pull --rebase origin master

1.2 如果是手動(dòng)建的工程,那么也是需要手動(dòng)生成.podspec文件。生成的目錄要與工程的.git目錄保持一致。

pod spec create name

比較以下??兩行命令的區(qū)別

pod spec create name
pod lib create name

1.3 編輯name.podsepc文件,建議用xcode打開。需要注意的是s.source_files,這個(gè)是基于.podsepc文件目錄下的可訪問的oc文件的目錄。

Pod::Spec.new do |s|
  s.name         = "name"    #工具庫(kù)名稱,與你創(chuàng)建時(shí)的名字要保持一致
  s.version      = "1.0.0"    #版本號(hào)
  s.summary      = "測(cè)試pod使用工具庫(kù)"    #簡(jiǎn)單描述信息,下邊是詳細(xì)描述信息
  s.description  = "測(cè)試測(cè)試pod使用工具庫(kù)desc"
  s.homepage     = "xxx"    #主頁(yè),可以訪問到的地址,不然無(wú)法通過驗(yàn)證
  s.license      = "MIT"    #開源協(xié)議
  s.author             = { "作者名字" => "郵箱地址" }    #作者信息
  s.source       = { :git => "xxx.git", :tag => "#{s.version}" }    #項(xiàng)目地址
  s.source_files  = "MRCycleScrollView/Test", "MRCycleScrollView/Test/**/*.{h,m}"
end
15979063843141.jpg

1.4 pod lib lint 不成功?? 使用 pod lib lint --allow-warnings 看見綠色文字的出現(xiàn)就成功

15978907062043.jpg

1.5 提交代碼打tag,提交代碼的命令見??

git tag -a 1.0.0 -m "release version 1.0.0"
git push origin --tags

2. 將私有的遠(yuǎn)程索引庫(kù)copy到本地??梢郧巴?strong>/用戶/xxx/.cocoapods/repos查看

pod repo add 索引庫(kù)name 索引庫(kù)的git地址

3. 將兩個(gè)倉(cāng)庫(kù)關(guān)聯(lián)起來

pod repo push 索引庫(kù)name 代碼庫(kù)的.podsepc --verbose --allow-warnings

4. 測(cè)試

在需要用的工程的podfile里添加私有索引庫(kù)的地址和私有pod庫(kù),pod install之后,進(jìn)行測(cè)試。

source 'https://github.com/CocoaPods/Specs.git'
source '私有索引庫(kù)的地址'

platform :ios, '10.0'
inhibit_all_warnings!

#abstract_target 'xxx' do
  # Comment the next line if you don't want to use dynamic frameworks
target 'xxx' do

  use_modular_headers!
  pod '私有庫(kù)','1.0.0'
end

5. 迭代更新發(fā)布

5.1 提交修改后的代碼到遠(yuǎn)程代碼倉(cāng)庫(kù)
5.2 更新.podsepc

修改代碼倉(cāng)庫(kù)中.podspec文件中的 s.version
打新的version的tag提交到代碼倉(cāng)庫(kù)
pod repo push 索引庫(kù)name 代碼庫(kù)的.podsepc --verbose --allow-warnings

5.3 項(xiàng)目工程執(zhí)行

pod update --verbose --no-repo-update

6. cocoaPods原理

cocoaPods本身也是一個(gè)工程。ruby語(yǔ)言開發(fā),由若干個(gè)gem組成管理。組件化使用不當(dāng)也具有副作用復(fù),用率增加的情況下,開發(fā)效率會(huì)下降。多庫(kù)開發(fā)在版本的發(fā)布與集成中增加了很多人工操作,依賴沖突、lock文件沖突等問題都阻礙了開發(fā)的效率進(jìn)一步提升。

cocoaPods原理-參考1
cocoaPods原理-參考2

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

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