“吊舱安装”不会更新现有的吊舱

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

是否有一些额外的步骤需要或有一个常见的错误,使更新失败?

我不知道哪个版本,但如果你更新你的cocoapods安装到最新版本,你会发现两个新的命令来帮助这个。

 pod outdated 

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

 pod update 

这将更新上一个命令中列出的窗格

您可以添加详细标记,并查看在更新期间是否显示错误。

 pod install --verbose 

使用--verbose是了解发生了什么的最好方法。 也许这是试图更新的回购有问题。 很难说。

我想这个问题的读者必须明白区别

荚安装与荚更新

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

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

每次运行pod install命令(并下载并安装新的pod)时,都会将其安装的版本(每个Pod)写入Podfile.lock文件中。 该文件会跟踪每个pod的安装版本并locking这些版本。 运行pod install ,它仅parsingPodfile.lock中未列出的pod install依赖关系。 对于Podfile.lock列出的Podfile.lock ,它将下载在Podfile.lock列出的显式版本,而不尝试检查是否有新版本可用。对于未在Podfile.lock列出的Podfile.lock ,它会search与在Podfile中描述(如在pod 'MyPod', '~>1.2'

如果您的项目configuration正确 ,您应该能够删除整个Pods目录并运行pod install 。 我发现这有时是在没有正确安装豆荚问题时的最佳解决scheme。

注意:如果您在构build时遇到如下错误:

 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. 

…您可能需要closures并重新打开Xcode中的项目 。

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