CocoaPods管理私有库

CocoaPods管理私有库

CocoaPods介绍

CocoaPods是帮助管理xcode项目第三方开源库的一个工具。项目依赖的第三库在名为Podfile的单个文本文件中指定。CocoaPods将解析第三库之间的依赖关系,获取生成的源代码,然后在Xcode工作区中将它们链接在一起以构建项目。

CocoaPods管理公有库的方式

  1. CocoaPods通过一个git仓库 The CocoaPods Master Repo 来管理第三库,该仓库中包含所有支持CocoaPods的公有开源库。
  2. 每个公有开源库各个版本的信息包含在一个后缀.podspec.json的文件中,其目录结构为.../specsname/version/xx.podspec.json,比如:.../AFNetworking/0.5.1/AFNetworking.podspec.json
  3. 当通过 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' => '[email protected]' }
  //私有库简价
  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 [email protected] 'Orta Therox' --description='macbook air'

了解更多关于创建公有库的内容,参见官方文档:Making CocoaPods

你可能感兴趣的:(CocoaPods管理私有库)