1. pod update会更新repo
根据installer.repo_update来看,pod update默认是更新repo的,而pod install是不更新的。所以我们有时候pod update时会特别慢,就是因为在更新repo,特别是CocoaPods的官方repo。这时我们就常常会使用pod update --no-repo-update来禁止更新repo。而pod install是不需要--no-repo-update,因为它本来就不会更新repo。
但是这是相对于pod 'SDWebImage', '~>3.8.0'这样的写法来用的。比如原来已经安装过3.8.0版本,Podfile.lock中就为3.8.0版本,满足~>3.8.0这个条件,那么pod install的时候是不会更新到最新版的。 但是pod update会更新到最新版,同时改写Podfile.lock中的版本号为最新版。而pod 'SDWebImage', '3.8.1'这种写法的话,pod install和pod update是一样的。比如Podfile.lock中原来为3.8.0版本,那么不管怎样都是不等于'3.8.1'的。 pod install的时候就会重新安装'3.8.1'版本,同时改写Podfile.lock中的版本号为'3.8.1'。
由于Cocoapods建议采用pod ‘React’, ‘~> 0.1.2’这种写法,所以在制作pod时,接口不向前兼容的更新最好修改版本号的第二位数。
2. pod update与Podfile.lock文件
pod update podName的时候会去Podfile.lock文件检查这个pod是否安装过,如果没有安装过会抛出异常。但是如果直接pod update的话就算Podfile.lock中没有某个pod,这是不会抛出异常,它会默认帮你先安装好,然后写入到Podfile.lock文件中。
综上所述:
pod install用在adding/removing pods的时候。而当你需要更新pods的时候使用pod update。还有最好把你的Podfile.lock文件提交到版本管理中,要不然,就会破坏整个逻辑,没有了Podfile.lock限制你的Pods中的库的版本。
网友评论