pod install vs. pod update
简介
很多人认为仅仅在第一次创建项目的时候使用pod install
之后使用pod update
,但是事实并非如此
我们接下来就会讨论什么时候使用pod install
什么时候使用pod update
- 使用
pod install
:在项目中使用pod install
安装新的pods、已经存在Podfile
文件并且运行过pod install、使用CocoaPods
删除或者添加pods时。 - 使用
pod update
:仅仅是当你想要升级pods到新版本时,也可以使用pod update [PODNAME]
来更新某个特定的pod
pod Install
用于项目第一次检索安装pods,同时也可以在每次编辑Podfile文件添加、更新、删除pod时使用。
- 每次运行
pod install
命令下载和安装新pods时,每个pods的版本都会被保存在Podfile.lock
文件中。这个文件保存着已经安装了的每个pod的版本,并且将会锁定这些版本。 - 当你运行
pod install
,它只是处理那些没有记录在Podfile.lock
文件中的pods的依赖。- 对于那些已经在
Podfile.lock
记录的pods,也仅仅是下载记录在Podfile.lock
文件中的pods的准确版本,并且不会去检查是否用新版本的pos可以使用。 - 对于还没有在
Podfile.lock
记录的pods,也仅仅是去查找匹配Podfile
描述的版本(比如pod 'MyPod', '~>1.2'
)
- 对于那些已经在
pod outdateds
当你运行pod outdated
时,CocoaPods将会列出所有比记录在Podfile.lock
中的版本有更新版本的pods(即当前每个已经安装了的pod的版本)。这意味着当你在这些pods上运行pod update PODNAME
时,它们将会更新版本,只要这些版本始终满足在Podfile
中的格式pod 'MyPod', '~>x.y'
pod update
当你运行
pod update PODNAME
时,CocoaPods将会找到指定podPODNAME
的新版本,不管Podfile.lock
中记录的版本。它将会更新pod到最新可用版本(只要满足Podfile
中的版本约束即可)如果你直接运行
pod update
没有附带pod名时,CocoaPods将会更新每个记录在Podfile
中的pod到最新可用版本。
推荐用法
- 使用
pod update PODNAME
时,你将仅仅是升级指定的pod(检查是否存在新版本,并且更新这个pod)。相反的使用pod install
将不会更新已经安装的pods的版本。 - 当你在
Podfile
中添加新pod时,应该运行pod install
而不是pod update
-才能安装这个新pod,并且不存在在同一个进程中更新已存在的pod的风险