cocoapods系列教程---安装与使用
cocoapods系列教程---Podfile文件
cocoapods系列教程---Podfile.lock文件 和 Spec Repo
cocoapods系列教程---spec文件
cocoapods系列教程---原理篇
cocoapods系列教程---让自己的开源框架支持cocoapods
cocoapods系列教程---模块化设计
cocoapods系列教程---创建私有pods
Podfile.lock 文件记录所有已安装的代码库的描述.其结构如下:
PODS:
- AFNetworking (2.6.3):
- AFNetworking/NSURLConnection (= 2.6.3)
- AFNetworking/NSURLSession (= 2.6.3)
- AFNetworking/Reachability (= 2.6.3)
- AFNetworking/Security (= 2.6.3)
- AFNetworking/Serialization (= 2.6.3)
- AFNetworking/UIKit (= 2.6.3)
DEPENDENCIES:
- AFNetworking (~> 2.6.3)
SPEC CHECKSUMS:
AFNetworking: cb8d14a848e831097108418f5d49217339d4eb60
COCOAPODS: 0.38.2
可以看出,podlock锁定了AFNetworking的版本,如果再次执行pod install,则不会更新AFNetworking的版本.执行pod update会更新AFNetworking. Podfile.lock 应该加入到版本控制里面,不应该把这个文件加入到.gitignore中。否则会导致每个开发成员上的依赖库版本不一致,造成冲突.
-
我们可以手动指定依赖库的版本,这样大家都是同一个版本.如:
pod 'AFNetworking', '3.0'
Spec Repo
Spec Repo,顾名思义,就是存放Spec文件的仓库,就是一个容器,所有公开的Pods都在这个里面,是一个Git仓库remote端.执行 pod setup
命令会clone该仓库到本地的~/.cocoapods/repos目录下,可以进入到这个目录看到master文件夹就是这个官方的Spec Repo了。这个master目录的结构如下:
├── Specs
└── [SPEC_NAME]
└── [VERSION]
└── [SPEC_NAME].podspec
可以看出,仓库保存了依赖库的名称,版本号,以及spec文件.
因为Spec Repo存放了所有的spec文件,所以很明显它是一种集中式的依赖库管理工具.并且只能pull不能push,本地亦可以修改.
- 添加仓库
pod repo add WTSpecs git@coding.net:wtlucky/WTSpecs.git
- 删除仓库
pod repo remove 仓库名