很多人使用cocoaPods时往往认为 pod install 只是在首次项目配置的时候使用的,而pod update是稍后更新库的时候使用的,但是事实并非如此
实际上
->使用pod install 在你的项目中安装新的库,即使你已经有了Podfile文件并且运行过pod install 命令,或者你已经有添加,删除过库
->使用pod update仅仅是在你想更新库版本的时候
详细细节
pod install:该命令是在你第一个在项目中获取库的时候使用,并且在每次你对Podfile文件编辑的时候(添加,更新,删除)使用
每一次运行pod install命令后,都会去下载安装新的库,并且会修改Podfile.lock文件中记录的库版本,Podfile.lock文件是用来追踪和锁定这些库的版本的
运行pod install后,它仅仅只能解决Podfile.lock中没有列出来的依赖关系
在Podfile.lock中列出来的那些库,也仅仅是只去下载Podfile.lock中指定的版本,并不会去检查最新的版本
没有在Podfile.lock中列出的那些库,会去检索Podfile中指定的版本,
pod outdated:当你使用pod outdated时,CocoaPods会罗列出所有在Podfile.lock中记录的有最新版本的库,意思是,如果你进行了pod update PODNAME操作,只要这些库符合Podfile.lock中的版本限制(如pod MyPod, ‘~>x.y’),那么它就会更新
pod update:当你运行了pod update PODNAME命令,CocoaPods将不会考虑Podfile.lock中列出的版本,而直接去查找该库的新版本。它将更新到这个库尽可能新的版本,只要符合Podfile中的版本限制要求。
如果使用pod update命令不带库名称参数,CocoaPods将会去更新Podfile中每一个库的尽可能新的版本
用法:
使用pod update PODNAME可以去更新一个库的指定版本(检查相应的库是否存在更新的版本,并且更新),相对应的,使用pod install将不会更新那些已经下载安装了的库。
当你在Podfile中添加了一个新的库时,你应该使用pod install命令,而不是pod udpate,这样安装了新增的库,也不会重复安装已经存在的库。
使用pod update仅仅只是去更新指定库的版本(或者全部库)
提交你的Podfile.lock文件:
提醒一下,即使你一向不commit你的库文件到你的共享仓库,你也应该总是commit & push到你的Podfile.lcok文件中。
否则,就会破坏掉pod install 的整个设计逻辑,造成Podfile.lock文件无法锁定你已经安装的库。