我了解以下命令将更新单个pod:pod update <podname>
。但是,这也会更新您之前安装的其他pod(未包含在update命令中的pod)的依赖关系。有没有办法更新单个pod并保留所有其他依赖项?
答案 0 :(得分:229)
确保安装了最新版本的CocoaPods。最近介绍了$ pod update POD
。
请参阅this issue thread for more information:
$ pod update
当您运行
pod update SomePodName
时,CocoaPods将尝试查找pod SomePodName的更新版本,而不考虑Podfile.lock
中列出的版本。它会将pod更新为最新版本(只要它与Podfile中的版本限制相匹配)。如果您运行pod update而没有任何pod名称,CocoaPods会将Podfile中列出的每个pod更新为最新版本。
答案 1 :(得分:155)
安装单个pod而不更新现有的pod-&gt;将该pod添加到您的Podfile并使用:
pod install --no-repo-update
删除/更新特定广告连播使用
pod update POD_NAME
测试!
答案 2 :(得分:40)
因为pod update SomePod
涉及最新版本的cocoapods中的所有内容,我找到了解决方法。
按照以下步骤操作:
从SomePod
Podfile
运行pod install
pod现在将从我们的项目和SomePod
文件中删除Podfile.lock
。
将SomePod
放回Podfile
再次运行pod install
这次我们的pod的最新版本将安装并保存在Podfile.lock
。
答案 3 :(得分:16)
只是一个小小的通知。
pod update POD_NAME
仅在已安装此pod时才有效。否则,您必须使用
更新所有这些内容pod update
命令
答案 4 :(得分:11)
只是说:
pod install
-用于安装新Pod,
pod update
-用于更新现有吊舱,
pod update podName
-仅更新特定的广告连播,而无需触摸其他广告连播,
pod update podName versionNum
-用于更新/降级特定的广告连播而无需触摸其他广告连播
答案 5 :(得分:7)
我使用cocoapods version 1.0.1
并使用pod update name-of-pod
完美无缺。没有其他pod更新,只是您输入的特定pod。
答案 6 :(得分:3)
tl; dr使用:
pod update podName
为什么?参见下文。
pod update
将不遵守podfile.lock
。它将覆盖它。 pod update
将尊重podfile.lock
此图有助于更好地理解差异:
主要问题来自~>
aka optimistic operator。
Podfile
中使用确切的版本是不够的有些人可能认为,通过在Podfile
中指定其pod的确切版本(例如pod 'A', '1.0.0'
)就足以确保每个用户与团队中其他人的版本相同。
那么,即使只是添加新的Pod,他们甚至可能会使用pod update
,以为永远不会冒着更新其他Pod的风险,因为它们已固定在Podfile
中的特定版本上。 >
但是实际上,这不足以保证我们上面的方案中的user1和user2始终获得与他们所有pod完全相同的版本。
一个典型的示例是,容器A
对容器A2
的依赖关系—在A.podspec
中声明为dependency 'A2', '~> 3.0'
。在这种情况下,在Podfile中使用pod 'A', '1.0.0'
确实会强制user1和user2都始终使用pod A的1.0.0版本,但是:
A2
版本的pod 3.4
结尾(因为那是A2
当时的最新版本)pod install
时,他们可能会获得A2
版本的pod 3.5
(因为A2
的维护者可能已经发布了新版本同时)。
这就是为什么确保每个团队成员在每台计算机上使用相同版本的所有pod的唯一方法是使用Podfile.lock
和正确使用pod install
与pod update
。以上摘录全部来自pod install vs. pod update
我也强烈建议您观看what does a podfile.lock
do
答案 7 :(得分:1)
这是一个异常值,不太可能是OP处理的内容,但如果您在计算机上使用本地pod,则pod update <podname>
将无法在所有情况下使用。
在这种情况下,唯一可以触发pod update
工作的是podspec文件中的更改。但是,进行更改也可以使pod install
也能正常工作。
在这种情况下,您只需修改一些字母(例如描述或摘要),然后您就可以成功运行安装或更新命令。
答案 8 :(得分:0)
pod update POD_NAME
将更新最新的pod,但不会更新Podfile.lock
文件。
因此,您可以使用特定版本的Pod更新Podfile,例如pod 'POD_NAME', '~> 2.9.0'
,然后使用命令pod install
稍后,您可以从Podfile中删除特定的版本命名,然后可以再次使用pod install
。这将有助于保持Podfile.lock
的更新。