参考
1. pod install 与 pod update 的用法
- 添加或者删除库的时候使用
pod install
pod install
命令每次被执行并且下载安装新库时,它会在Podfile.lock
中写入该库的版本号。Podfile.lock
会追踪并且锁定每个库安装的版本。pod install
会先拿到Podfile
中的 pod,在Podfile.lock
中找- 对于已在
Podfile.lock
记录的 pod,CocoaPods 会下载Podfile.lock
中记录的确切的版本,不会去检查是否有比当前 pod 更新的版本(不一定是该库最新的版本) - 对于没有在
Podfile.lock
中记录的库,CocoaPods 会搜索到一个与Podfile
中描述符合的版本(比如 '~1.0',可能找到的是 1.4)
- 对于已在
- 仅在你想把某个库更新到新版本的时候才使用
pod update PODNAME
- 如果执行
pod update PODNAME
,它会直接把库更新到最新的版本。不会去考虑Podfile
与Podfile.lock
中的版本。 - 执行
pod update
,CocoaPods 会把Podfile
中列出的每个库都升级到最新的版本。
- 如果执行
2. pod outdated 用法
执行 pod outdated
,CocoaPods 会把 Podfile.lock
中每个有更新的版本的库列出来。
3. 使用 Podfile 不能确保版本号是正确的
比如,user1 使用了 pod 'A', '~>1 .0',假设当时 A 最新的版本是 1.4,那么 1.4 版本会被安装,会被记录在 Podfile.lock 中,以后如果 A 出来了新版的 1.5,那么再执行 pod install,A 1.4 已经存在于 Podfile.lock 中的,CocoaPods 就不会再去检查有没有新的版本了,而是直接下载安装 1.4 版本的。
如果在安装 1.4 之后,Podfile.lock 文件丢失了,这时候又出来了 1.5,那么这时执行 pod install,就会安装成 1.5 版本的库。
简言之:pod install
会先在 Podfile.lock
中查找有没有符合 Podfile
中指定的版本号,如果有的话就直接下载这个确切的版本,如果没有的话就搜索到符合 Podefile
中指定的版本再下载。
pod update
会直接下载使用最新的版本,忽略 Podfile
和 Podfile.lock
中指定的版本号。