【问题标题】:Exclude a pod from updating从更新中排除 pod
【发布时间】:2014-06-17 07:28:50
【问题描述】:

我使用 Cocoapods。我对第 3 方库进行了一些更改,如果我运行 pod update,所有这些更改都会被替换。运行 pod install 做同样的事情。

有没有办法将 pod 排除在更新之外?还是一种安装单个 Pod 而不影响其他 Pod 的方法?

【问题讨论】:

    标签: ios cocoapods


    【解决方案1】:

    终于找到了解决办法。

    如果项目中已经有库,它将安装 pod 而无需任何存储库更新,否则将下载

    pod install --no-repo-update 
    

    如果你想更新特定的库,你可以使用:

    pod update [POD_NAME...]
    

    【讨论】:

      【解决方案2】:

      我知道这个话题很老了,但有人可能会在回答后来到这里,所以这里是:

      来自https://github.com/CocoaPods/CocoaPods/pull/7524

      --exclude-pods 选项到pod update 命令。

      它允许跳过特定 pod 的更新操作。

      【讨论】:

      • 这个答案有效。这是一个如何使用它来更新除 Alamofire 之外的所有内容的示例。您必须将其添加到终端的命令行中:$ pod update --exclude-pods=Alamofire 除 Alamofire 之外的所有其他 pod 都将更新
      【解决方案3】:

      是的,只需指定您要安装的版本,例如如果您想继续使用AFNetworking 1.3 而不是升级到 2.*:

      pod 'AFNetworking', '~> 1.3.2'
      

      【讨论】:

      • 我已经为所有的 Pod 指定了版本号。对它们所做的更改仍然会被新副本替换。
      • 这是因为 Pod 自身已更新,现在工作方式有所不同。所以它会更新到你指定的版本,之后就不会再更新了。
      • 奇怪的是我指定了最新的版本号,它仍然得到更新。输出是这样的。 <podname> 1.3.5 (was 1.3.5)
      • 这是因为 cocoapods 本身在您上次使用它更新 pod 之间进行了更新。这在内部改变了一些事情。但由于它仍在检索相同的版本,所以这无关紧要。
      【解决方案4】:

      请查看此讨论: https://github.com/CocoaPods/CocoaPods/issues/760

      目前仅更新单个 pod 的一种可能解决方案是:

      Remove specific pod from Podfile
      pod install
      Re-add specific pod to Podfile
      pod install
      

      【讨论】:

      • 删除是指删除我不想更新的 pod?
      • 好的。但是当我重新添加它并运行pod install 时,它不会得到一个新副本而不是我所做的更改吗?
      • 第一次 pod install 后,您将更新所有库,除了您修改的库。这就是你想要的。所以你是对的,最后一次 pod install 将更新所有 3rd 方库(这个命令对于你的情况不是必需的)。
      • 我不会这样做,因为从 Podfile 中删除 pod 会在您破坏 pod 安装后立即删除库。
      • @rckoenes 感谢您的评论,我认为我的回答是错误的(抱歉)。因此,对于最终解决方案,您可以执行以下操作:1. 按照建议的 rckoenes 更改 pod 文件,2. 将您的更改保存在其他地方 3. 更新 pod 4. 将您保存的更改合并到特定的 3rd 方库源中。谢谢。
      猜你喜欢
      • 2019-04-03
      • 2018-12-15
      • 2012-03-25
      • 2019-08-12
      • 2018-02-01
      • 2021-08-27
      • 2020-01-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多