42

我正在尝试使用更新我的 podpod install并发现它无法正确更新,除非我删除原始 pod

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

4

4 回答 4

88

我不确定从哪个版本开始,但是如果您将 cocoapods 安装更新到最新版本,您会找到两个新命令来帮助解决这个问题。

pod outdated

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

pod update

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

于 2012-10-16T03:04:12.243 回答
7

您可以添加详细标签并查看更新期间是否出现错误。

pod install --verbose

使用--verbose是找出发生了什么的最好方法。它尝试更新的存储库可能存在问题。很难说。

于 2012-08-27T13:21:39.927 回答
6

我认为这个问题的读者必须了解

pod 安装与 pod 更新

许多从 CocoaPods 开始的人似乎认为pod install仅在您第一次使用 CocoaPods 设置项目时使用它,然后pod update再使用它。但事实并非如此。

  • 用于pod install在您的项目中安装新的 pod。即使你已经有一个 Podfile 并且之前运行pod install过;因此,即使您只是在已经使用 CocoaPods 的项目中添加/删除 pod。
  • pod update [PODNAME]仅在您要将特定 pod 更新到较新版本时使用 。
  • pod update仅当您想要将每个 pod 更新到更新的可用版本时使用 。

每次pod install运行命令时——并下载和安装新的 Pod——它都会在文件中写入它为每个 Pod 安装的版本Podfile.lock。此文件跟踪每个 pod 的已安装版本并锁定这些版本。当您运行时pod install,它只会解析Podfile.lock. 对于 中列出的 pod Podfile.lock,它会下载 中列出的显式版本,而Podfile.lock不会尝试检查是否有新版本可用 对于尚未列出的 pod Podfile.lock,它会搜索与 Podfile 中描述的版本匹配的版本(如 中pod 'MyPod', '~>1.2'

于 2016-07-06T09:24:02.187 回答
0

如果您的项目配置正确,您应该可以删除整个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.

...您可能需要在 Xcode 中关闭并重新打开项目

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

于 2014-03-15T19:04:27.913 回答