从更新中排除 pod

Posted

技术标签:

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

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

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

【问题讨论】:

【参考方案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 方库源中。谢谢。

以上是关于从更新中排除 pod的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Kubernetes Horizo​​ntal Pod Autoscaling 中排除一些容器的指标

使用催化剂移植到 mac 时排除 pod

从编辑器中排除包更新

共同排除2个豆荚

从普罗米修斯抓取中排除 Kubernetes 命名空间

Prometheus 中的 container="POD" 标签是啥,为啥大多数示例都排除了它?