CocoaPods管理私有庫
CocoaPods介紹
CocoaPods是幫助管理xcode項目第三方開源庫的一個工具。項目依賴的第三庫在名為Podfile的單個文本文件中指定。CocoaPods將解析第三庫之間的依賴關(guān)系,獲取生成的源代碼,然后在Xcode工作區(qū)中將它們鏈接在一起以構(gòu)建項目。
CocoaPods管理公有庫的方式
- CocoaPods通過一個git倉庫 The CocoaPods Master Repo 來管理第三庫,該倉庫中包含所有支持CocoaPods的公有開源庫。
- 每個公有開源庫各個版本的信息包含在一個后綴
.podspec.json的文件中,其目錄結(jié)構(gòu)為.../specsname/version/xx.podspec.json,比如:.../AFNetworking/0.5.1/AFNetworking.podspec.json。 - 當(dāng)通過
pod install安裝第三庫時,會從The CocoaPods Master Repo倉庫中找到對應(yīng)庫對應(yīng)版本的.podspec文件,再通過podspec文件中的信息來安裝第三方庫。
CocoaPods私有庫創(chuàng)建
同公有庫類似,要通過CocoaPods來管理私有庫,首先需要創(chuàng)建一個私有g(shù)it倉庫(私有specs倉庫),用于管理各個私有庫的
.podspec文件。然后將該私有specs倉庫添加到CocoaPods中,最后將需要被管理的私有庫的信息以.podspec文件的形式添加到該私有specs倉庫即可。
step1: 創(chuàng)建一個私有specs倉庫,注意該倉庫應(yīng)該只有自己和團(tuán)隊成員有權(quán)限。
step2: 將該私有specs倉庫作為一個新的源添加到CocoaPods中
$ pod repo add REPO_NAME SOURCE_URL
其中REPO_NAME表示新加的specs源名稱,SOURCE_URL表示私有specs倉庫的地址。
檢查是否添加成功
$ cd ~/.cocoapods/repos/REPO_NAME
$ pod repo lint .
step3: 為私有庫添加.podspec文件
在私有庫的根目錄下,創(chuàng)建一個.podspec文件,并編輯相關(guān)內(nèi)容。
pod spec create SPEC_NAME
編輯.podspec文件
Pod::Spec.new do |spec|
//私有庫名稱,需要與文件名相同,之后通過CocoaPods安裝該庫也使用這個名稱
spec.name = 'Reachability'
//私有庫當(dāng)前版本,需在私有庫的master分支上有對應(yīng)的版本tag
spec.version = '3.1.0'
//license,版權(quán)聲明
spec.license = { :type => 'BSD' }
//私有庫主頁
spec.homepage = 'https://github.com/tonymillion/Reachability'
//作者信息
spec.authors = { 'Tony Million' => 'tonymillion@gmail.com' }
//私有庫簡價
spec.summary = 'ARC and GCD Compatible Reachability Class for iOS and OS X.'
//私有庫源(git地址)
spec.source = { :git => 'https://github.com/tonymillion/Reachability.git', :tag => 'v3.1.0' }
//CocoaPods要引用該庫的哪些文件
spec.source_files = 'Reachability.{h,m}'
//該依賴的系統(tǒng)框架
spec.framework = 'SystemConfiguration'
end
更多.podspec文件配置說明,參見官方文檔:Podspec Syntax Reference
檢查.podspec文件是否有效
pod spec lint
step4: 添加.podspec文件到私有spec倉庫
pod repo push REPO_NAME .../xxx/SPEC_NAME.podspec
驗證添加成功
cd ~/.cocoapods/repo/REPO_NAME
目錄結(jié)構(gòu)應(yīng)該如下:
.
[SPEC_NAME]
└── [VERSION]
└── [SPEC_NAME].podspec
step5: search驗證
以上4步順利完成,則私有庫添加成功,現(xiàn)在就可以通過pod search命令來搜索測試一下,如果能夠成功搜索到信息,則說明私有庫已添加成功。
pod search SPEC_NAME
使用私有庫
與使用公有庫的方式完全相同,只需要Podfile文件中,添加私有spec倉庫的地址。CocoaPods會根據(jù)source的順序進(jìn)搜索Podfile文件中列出的第三庫
source 'https://github.com/your-private-spec/Specs.git'
source 'https://github.com/CocoaPods/Specs.git' //這個是默認(rèn)的公有庫地址
更多Podfile的配置說明,參見官方文檔:Podfile Syntax Reference
私有庫升級
在開發(fā)好新版本后,將代碼合并到master分支,在master分支添加新版本的tag,然后將.podspec文件的版本修改為相同的版本號,然執(zhí)行上述step4即可。
pod repo push REPO_NAME .../xxx/SPEC_NAME.podspec
順便說下公有庫
如果要將自己的開源項目支持CocoaPods,實現(xiàn)基本相同,只需要將上述step4修改為如下命令:
$ pod trunk push SPEC_NAME.podspec
如果是第一次操作,需要向CocoaPods進(jìn)行注冊。
$ pod trunk register orta@cocoapods.org 'Orta Therox' --description='macbook air'
了解更多關(guān)于創(chuàng)建公有庫的內(nèi)容,參見官方文檔:Making CocoaPods