'pod install'不会更新现有的pod

时间:2012-07-24 20:21:45

标签: objective-c cocoapods

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

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

4 个答案:

答案 0 :(得分:86)

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

pod outdated

这将列出所有可用更新的广告连播。

pod update

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

答案 1 :(得分:6)

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

pod install --verbose

使用--verbose是了解正在发生的事情的最佳方式。也许它正试图更新的repo存在问题。很难说。

答案 2 :(得分:5)

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

之间的区别
  

pod install与pod update

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

  • 使用pod install在项目中安装新的pod。即使您已经拥有Podfile并且之前已经运行pod install;所以,即使你只是在已经使用CocoaPods的项目中添加/删除pod。
  • 仅当您要将特定广告连播更新为较新版本时才使用pod update [PODNAME]
  • 仅当您要将每个广告连播更新为较新的可用版本时才使用pod update

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

答案 3 :(得分:0)

如果您的项目是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目录中的所有文件。 (即确保您没有手动修改或添加文件到Pods目录。)

相关问题