从更新中排除 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的主要内容,如果未能解决你的问题,请参考以下文章