podspec文件
建立CocoaPods私有源的關鍵是編寫.podspec
文件,此文件是CocoaPods所使用的一種特殊,例子可以參考以下源碼。
Pod::Spec.new do |s|
s.name = 'AFNetworking'
s.version = '3.2.1'
s.license = 'MIT'
s.summary = 'A delightful iOS and OS X networking framework.'
s.homepage = 'https://github.com/AFNetworking/AFNetworking'
s.social_media_url = 'https://twitter.com/AFNetworking'
s.authors = { 'Mattt Thompson' => 'm@mattt.me' }
s.source = { :git => 'https://github.com/AFNetworking/AFNetworking.git', :tag => s.version, :submodules => true }
s.requires_arc = true
s.public_header_files = 'AFNetworking/AFNetworking.h'
s.source_files = 'AFNetworking/AFNetworking.h'
# 省略
創建Spec Repo
在GitHub或者公司內部的GitLab上創建一個Git Repo作為存放spec的Repo,然后在本地執行以下命令。
pod repo add [Spec Repo Name] [Spec Repo address]
如
pod repo add MySpecs http://git.xxx.com/MySpecs/specs.git
執行成功的話進入到~/.cocoapods/repos目錄下就可以看到 MySpecs這個目錄了,創建私有Spec Repo完成。
創建Pod項目工程文件
接下來就是創建各個第三方庫的源碼Repo,然后再與Spec Repo關聯起來就行。
可以使用pod lib create [lib repo]
來創建一個示例的源碼倉庫。
執行完畢后,會創建一個包含podspec文件的的pod項目。創建完畢后,可以通過以下命令校驗podspec項目是否正確
pod lib lint
也可以通過以下命令簡單簡單創建一個.podspec文件
pod spec create [podspec Name]
如
pod spec create mypodspec
建立一個遠程倉庫,把這個本地Pod項目工程推送到遠程倉庫,因為podspec文件中獲取Git對應的分支是通過tag來獲取的,所以我們要打上一個tag,
git tag -m "first release for v1.1.0" 1.1.0
git push --tags #推送tag到遠端倉庫,不能省略
推送Git之前要驗證spec文件是否有效
pod lib lint --allow-warnings
向Spec Repo提交podspec
向Spec Repo提交podspec必須使用pod lib lint --allow-warnings
命令驗證無誤,然后執行以下命令
pod repo push [Spec Repo Name] [podspecName]
如
pod repo push MySpecs mypodspec.podspec
完成之后這個組件庫就添加到我們的私有Spec Repo中了,可以進入到~/.cocoapods/repos/[Spec Repo Name]
目錄下私有源Spec Repo遠端倉庫查看,都可以發現此次push的podspec。
使用私有源
在Podfile中添加私有源的搜索source
source 'http://git.XXX.com/MySpecs/specs.git
然后直接導入便可
pod 'XXX', '2.5.0'
當然也可以通過
pod search XXX
搜索到