【问题标题】:In fact, why does CocoaPods not install the latest version of pods?实际上,为什么 CocoaPods 不安装最新版本的 pods?
【发布时间】:2019-11-03 17:29:31
【问题描述】:

注意 - 实际上显然确实如此。使用 Marcelo 解释的语法。希望它可以帮助某人!


使用 CocoaPods,您基本上可以这样做,

pod 'GTScrollNavigationBar', '~>0.1.1'

例如,

它将安装 0.1.1 的“GTScrollNavigatorBar”。太棒了。

但是 - 为什么当有新版本可用时它不简单地更新“GTScrollNavigatorBar”?

【问题讨论】:

    标签: cocoapods


    【解决方案1】:

    基本上,它尊重您在Podfile 中所说的内容。

    你有几个选择(来自CocoaPods guides):

    • > 0.1 任何高于 0.1 的版本
    • >= 0.1 0.1 及更高版本
    • < 0.1 任何低于 0.1 的版本
    • <= 0.1 0.1 及更低版本
    • ~> 0.1.2 0.1.2及0.2以下的版本,不包括0.2

    您也可以不提供任何版本,这将始终安装最新的可用版本。另一种选择是提供特定版本,以便始终使用该版本。

    【讨论】:

    • Marcelo,你在开玩笑吧,如果我只是省略了版本号,就像这样:pod 'GTScrollNavigationBar'(对吗?仅此而已,仅此而已?) 它总是会安装最新的?事实上 - “什么时候”这样做,要清楚吗?每次我启动有问题的 appName.xcworkspace 时?或者,就在我运行“pod update”时?太感谢了!我对此一无所知(可怜的医生?!)
    • 是的,它会的。它会在您第一次运行 pod install 时安装最新的可用版本,然后如果需要,您必须运行 pod update 来更新您的依赖项。
    • 我想在这个答案中添加一条缺失的信息。 CocoaPod guide 没有完全解释“~>”运算符的含义。上面的例子展示了如何忽略补丁版本进行升级,但是如果您想通过忽略次要版本进行升级呢?方法如下:“~> 0.1”表示版本 0.1 和最高 1.0 的版本,不包括 1.0。
    【解决方案2】:

    CocoaPods 缓存了你当前版本的 pod,所以基本上你必须清理缓存。
    您可以使用以下命令在项目目录中本地创建它:
    pod cache clean --all

    【讨论】:

      【解决方案3】:

      虽然我认为保持项目依赖项最新非常重要,但我不建议立即自动更新所有内容。

      我正在使用VersionEye 来获取有关我的软件依赖项的新版本的通知。好的项目都用semantic versioning,对更新有很大帮助。大多数新版本都是补丁或次要版本,这意味着您可以以低风险进行更新。每隔几个月就会出现主要版本。在这里你必须小心更新。新的主要版本很可能会破坏您的构建。这就是为什么您必须检查更改日志和迁移路径的原因。并且不要忘记在更新后运行测试 ;-)

      如果您想了解如何正确更新,请查看幻灯片至continuous updating

      【讨论】:

        猜你喜欢
        • 2021-12-20
        • 1970-01-01
        • 1970-01-01
        • 2021-07-28
        • 2020-04-22
        • 2021-02-27
        • 2015-12-07
        • 2020-07-13
        • 2015-06-04
        相关资源
        最近更新 更多