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

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

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)一步提升。