“吊舱安装”不会更新现有的吊舱
我正尝试使用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目录。)