pod install VS pod update

637 阅读2分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动

通过问题看本质!!!

平时在开发过程中太多没有关注CocoaPods原理,总是先pod install,不行再pod update,总会可以的。但其实这是个错误的做法。首先我们先来了解一下它们的区别和原理吧。

区别

是否会按照podfile文件中的指定版本拉取最新的版本依赖。

pod install

首次为项目添加podfile时,或者是在podfile添加新的库或者删除库的时候。

pod install为每一次它安装的pod库,在lock文件中写入版本,用于追踪并锁定版本。

存在podfile.lock文件中pod库,则会按照podfile文件中的指定版本安装,不会检查库是否有更新的版本。

不在podfile.lock文件的pod库,则会按照podfile中版本控制语句来拉取对应版本的依赖。

pod update 

pod update会忽略podfile.lock文件,直接根据podfile文件中版本控制语句拉取最新版本的依赖。

会更新spec文件 所以会比较慢。

如果直接运行pod update, 没有指定PODNAME, CocoaPods会把Podfile中所有的pod都更新到最新版本,所以会超级超级慢,所以要慎用!!!

提交Podfile.lock文件

Podfile.lock文件会锁定你已经安装的库。如果不提交,就会破坏掉pod install 的整个设计逻辑,造成在项目开发过程中,不可的开发人员使用的pod库版本不一致。即使Podfile文件中指定版本的方法不够用。

为什么直接在Podfile文件中指定版本的方法不够用

如果指定了pod A库的版本。但是无法确定A库依赖A1库是否是指定的版本。一般这种依赖是不可见的。所以不能保证所有的用户都是用相同版本。

就比如在新冠期间,我们为什么要戴口罩。因为你只能确定你的朋友不是来自中高风险地区,但是无法确定你朋友的朋友是否来自中高风险地区。

总结

  • 提交Podfile.lock文件,它可以保证团队开发人员都使用相同版本的库。
  • 并且合理的使用pod install和 pod update