CocoaPods管理私有库
CocoaPods介绍
CocoaPods是帮助管理xcode项目第三方开源库的一个工具。项目依赖的第三库在名为Podfile
的单个文本文件中指定。CocoaPods将解析第三库之间的依赖关系,获取生成的源代码,然后在Xcode工作区中将它们链接在一起以构建项目。
CocoaPods管理公有库的方式
- CocoaPods通过一个git仓库 The CocoaPods Master Repo 来管理第三库,该仓库中包含所有支持CocoaPods的公有开源库。
- 每个公有开源库各个版本的信息包含在一个后缀
.podspec.json
的文件中,其目录结构为.../specsname/version/xx.podspec.json
,比如:.../AFNetworking/0.5.1/AFNetworking.podspec.json
。 - 当通过
pod install
安装第三库时,会从The CocoaPods Master Repo
仓库中找到对应库对应版本的.podspec
文件,再通过podspec
文件中的信息来安装第三方库。
CocoaPods私有库创建
同公有库类似,要通过CocoaPods来管理私有库,首先需要创建一个私有git仓库(私有specs仓库),用于管理各个私有库的
.podspec
文件。然后将该私有specs仓库添加到CocoaPods中,最后将需要被管理的私有库的信息以.podspec
文件的形式添加到该私有specs仓库即可。
step1: 创建一个私有specs仓库,注意该仓库应该只有自己和团队成员有权限。
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文件
在私有库的根目录下,创建一个.podspec文件,并编辑相关内容。
pod spec create SPEC_NAME
编辑.podspec
文件
Pod::Spec.new do |spec|
//私有库名称,需要与文件名相同,之后通过CocoaPods安装该库也使用这个名称
spec.name = 'Reachability'
//私有库当前版本,需在私有库的master分支上有对应的版本tag
spec.version = '3.1.0'
//license,版权声明
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}'
//该依赖的系统框架
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
目录结构应该如下:
.
[SPEC_NAME]
└── [VERSION]
└── [SPEC_NAME].podspec
step5: search验证
以上4步顺利完成,则私有库添加成功,现在就可以通过pod search
命令来搜索测试一下,如果能够成功搜索到信息,则说明私有库已添加成功。
pod search SPEC_NAME
使用私有库
与使用公有库的方式完全相同,只需要Podfile
文件中,添加私有spec仓库的地址。CocoaPods会根据source的顺序进搜索Podfile
文件中列出的第三库
source 'https://github.com/your-private-spec/Specs.git'
source 'https://github.com/CocoaPods/Specs.git' //这个是默认的公有库地址
更多Podfile
的配置说明,参见官方文档:Podfile Syntax Reference
私有库升级
在开发好新版本后,将代码合并到master分支,在master分支添加新版本的tag,然后将.podspec
文件的版本修改为相同的版本号,然执行上述step4
即可。
pod repo push REPO_NAME .../xxx/SPEC_NAME.podspec
顺便说下公有库
如果要将自己的开源项目支持CocoaPods,实现基本相同,只需要将上述step4
修改为如下命令:
$ pod trunk push SPEC_NAME.podspec
如果是第一次操作,需要向CocoaPods进行注册。
$ pod trunk register orta@cocoapods.org 'Orta Therox' --description='macbook air'
了解更多关于创建公有库的内容,参见官方文档:Making CocoaPods