Answers:
确保您安装了最新版本的CocoaPods。$ pod update POD
是最近介绍的。
$ pod更新
运行时
pod update SomePodName
,CocoaPods将尝试查找pod SomePodName吊舱的更新版本,而不考虑列出的版本Podfile.lock
。它将把pod更新到可能的最新版本(只要它与Podfile中的版本限制匹配)。如果您运行没有任何Pod名称的Pod更新,CocoaPods会将Podfile中列出的每个Pod更新为可能的最新版本。
$ pod update SomePodName
。但是,在某些情况下,CocoaPods也将尝试更新其他Pod的依赖项。长话短说,在某些情况下,SomePodName不是唯一会更新的Pod。
pod install
它会恢复为原始版本。但我不想失去我的变化
pod update
感动一切。它没有达到锡罐上的要求,而且非常令人沮丧。从您尚未告诉其触摸的其他豆荚中随机删除标头,等等
所以因为 pod update SomePod
接触了最新版的可可豆,所以我找到了一种解决方法。
请执行以下步骤:
SomePod
从中删除Podfile
跑 pod install
吊舱现在SomePod
将从我们的项目和Podfile.lock
文件中删除。
放回SomePod
进Podfile
再跑pod install
一次
这次,我们的Pod的最新版本将安装并保存在中Podfile.lock
。
pod update somepod anotherpod thirdpod
一次更新多个Pod :)
SomePod
将其更新为最新的依赖项,而不是将其更新为最新的共享依赖项anotherPod
?无论Podlock中有什么,都不会发生吗?否则它将无法满足SomePod
tl; dr使用:
pod update podName
为什么?参见下文。
pod update
不会尊重的podfile.lock
。它将覆盖它。pod install
将尊重 podfile.lock
此图有助于更好地理解差异:
主要问题来自于~>
又名乐观运营商。
Podfile
是不够的有人可能会认为,通过在中指定其pod的确切版本Podfile
,例如pod 'A', '1.0.0'
就足以保证每个用户与团队中其他人的版本相同。
然后pod update
,即使只是添加新的Pod,他们甚至可能会使用,以为永远不会冒着更新其他Pod的风险,因为它们已固定到中的特定版本Podfile
。
但是实际上,这还不足以保证我们上面的方案中的user1和user2始终获得与它们所有pod完全相同的版本。
一个典型的示例是,如果pod A
依赖于pod A2
—声明A.podspec
为dependency 'A2', '~> 3.0'
。在这种情况下,'A', '1.0.0'
在Podfile中使用pod 确实会迫使user1和user2都始终使用pod A的1.0.0版本,但是:
A2
的版本3.4
(因为A2
的当时最新版本)pod install
在以后加入项目时运行时,他们可能会获得Pod A2
的版本3.5
(因为的维护者A2
可能同时发布了新版本)。这就是为什么只有这样才能保证所有的吊舱的相同版本的每一位团队成员的工作在每个电脑是使用Podfile.lock
和正确使用pod install
与pod update
。以上摘录全部来自Pod安装与Pod更新
我也强烈建议看什么对podfile.lock
做
这有点离群值,不太可能是OP处理的内容,但是 pod update <podname>
如果您在计算机上使用本地Pod,则在所有情况下都无法正常工作。
在这种情况下,唯一触发pod update
工作的就是podspec文件中是否有更改。但是,进行更改也将允许pod install
使其正常工作。
在这种情况下,您可以只用一个字母修改一些小的内容,例如描述或摘要,然后就可以成功运行install或update命令。
podfile.lock
是什么。请参阅链接及其引用的视频。