'pod install'不更新现有的pod

问题描述:

我尝试使用pod install更新我的pod并发现它不能正确更新除非我删除原始pod'pod install'不更新现有的pod

是否需要一些额外的步骤或是否存在导致更新失败的常见错误?

+0

什么是你试图运行的完整命令?你从它得到什么输出? – 2012-07-24 22:02:34

您可以添加verbose标签并查看更新期间是否显示错误。

pod install --verbose 

使用--verbose是了解发生了什么的最佳方法。也许它试图从中更新的回购存在问题。很难说。

+0

我有同样的问题。添加详细的开关没有给出任何提示,说明为什么该pod没有更新。 – Klaas 2012-09-06 21:55:18

+0

也许@alloy可以看看这个并提供一些帮助。我注意到当你运行pod安装时,pod并不总是删除或更新。 – 2012-09-10 15:48:11

我不确定哪个版本,但是如果您将cocoapods安装更新到最新版本,您会发现两条新命令来帮助解决此问题。

pod outdated 

这将列出所有可用更新的豆荚。

pod update 

这将更新在上一命令

+7

“更新您的cocoapods安装”如何:“[sudo] gem update cocoapods” – zaph 2013-04-05 12:20:38

+0

@Zaph yup。只要你如何更新任何其他创业板 – 2013-04-07 00:10:42

+1

这解决了它对我来说。 @EdwardHuynh,Zaph的评论是必要的,因为并不是所有使用Cocoapods的人都熟悉Ruby。 – Chris 2014-03-27 14:08:40

如果你的项目是configured correctly,你应该能够删除整个Pods目录并运行pod install列出的豆荚。我发现这有时是在没有正确安装Pod时出现问题的最佳解决方案。

注:如果你开始得到错误像这样当你建立:

diff: /../Podfile.lock: No such file or directory 
diff: /Manifest.lock: No such file or directory 
error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation. 

...你可能需要close and reopen the project in Xcode

警告:确保在删除Pods目录之前,您的Pods目录中的所有文件都将被重新创建。 (即确保你没有手动修改或添加文件到吊舱目录。)

我认为这个问题的读者必须明白

荚之间的差异与安装更新荚

许多以CocoaPods开始的人似乎认为pod安装仅在您第一次使用CocoaPods设置项目时使用,并且之后使用pod更新。但事实并非如此。

  • 使用pod install在您的项目中安装新的窗格。即使你已经有了一个Podfile并在之前运行了pod install;所以即使你只是添加/删除豆荚到已经使用CocoaPods的项目。
  • 仅当您要将特定窗格更新为较新版本时才使用pod update [PODNAME]
  • 仅当您想将每个窗格更新为更新的可用版本时才使用pod update

每当pod install命令运行时间 - 并下载和安装新荚 - 它写它已经安装的版本,每个豆荚,在Podfile.lock文件。该文件会跟踪每个吊舱的安装版本并锁定这些版本。 运行pod install时,它仅解决了Podfile.lock中未列出的Pod的依赖关系。 对于Podfile.lock中列出的窗格,它下载Podfile.lock中列出的显式版本,而不尝试检查是否有更新版本可用 对于Podfile.lock中未列出的窗格,它将搜索与Podfile中描述的内容相匹配的版本(如在pod 'MyPod', '~>1.2'