pod install
在项目中第一次使用CocoaPods, 进行安装的时候使用这个命令.
在Podfile中增加或删除某个pod后, 也是使用这个命令. 而不是pod update.
每次运行pod install命令, 下载并安装新的pod时, 它会为Podfile.lock文件中的每个pod写入已安装的版本. 此文件跟踪每个pod的已安装版本并锁定这些版本(.lock命名因此而来).
当运行pod install,它只解析Podfile.lock中尚未列在其中的pod的依赖库.
对于已经在Podfile.lock中列出的pod, Podfile.lock不会尝试检查是否有更新的版本.
对于尚未在Podfile.lock中列出的pod, 会搜索与Podfile(如中所述pod ‘MyPod’, ‘~>1.2’)匹配的版本或最新的版本.
注: 第一次运行pod install的时候, .xcworkspace项目和Pods目录还不存在, pod install命令也会创建.xcworkspace和Pods目录, 但这是pod install命令的顺带作用,而不是它的主要作用.
pod outdated
当运行pod outdated时, CocoaPods将列出所有比Podfile.lock(每个pod当前安装的版本)中, 已经列出的版本更新的pod版本. 这意味着如果你在这些pod上运行pod update PODNAME, 它将会把指定的pod更新到最新版本.
pod update
当运行pod update PODNAME时, CocoaPods将尝试查找PODNAME更新的pod版本, 会忽略掉Podfile.lock中已经存在的版本.
如果直接运行pod update, 没有指定PODNAME, CocoaPods会把Podfile中所有的pod都更新到最新版本.(如果已经是最新版本了, 则不更新)
预期用途
使用pod update PODNAME, 将只能更新特定的pod(检查是否存在新版本并相应地更新pod). 相反, pod install不会尝试更新已安装的pod的版本.
当向Podfile中添加一个pod时, 应该运行pod install, 而不是用pod update来安装这个新pod.
只有在想要更新特定pod(或所有的pod)的版本时才会使用pod update.
必须提交的Podfile.lock
有时候可能你不想提交Pods目录到源代码管理中. 但是在多人开发的情况下, 一定要提交Podfile.lock这个文件, 因为这个文件里面记录了你的Podfile中所有pod的版本信息. 为避免你的Podfile中的pod版本和别人的Podfile中的pod发生版本不一样的情况, 而导致出现函数找不到或者其他的错误.