我正在尝试使用pod install
更新我的广告连播并发现它无法正确更新 ,除非我删除原始广告 。
是否需要一些额外步骤,或者是否存在导致更新失败的常见错误?
答案 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目录。)