Cocoa 如何在不涉及其他依赖项的情况下更新单个pod
我知道以下命令将更新单个pod:Cocoa 如何在不涉及其他依赖项的情况下更新单个pod,cocoa,cocoapods,podfile,pod-install,Cocoa,Cocoapods,Podfile,Pod Install,我知道以下命令将更新单个pod:pod update。但是,这也会更新您以前安装的其他POD(更新命令中未包含的POD)的依赖项。有没有一种方法可以更新一个pod,而不去理会所有其他依赖项?确保安装了最新版本的CocoaPods $pod update PODNAME最近推出 见: $pod更新 运行pod update SomePodName时,CocoaPods将尝试查找pod SomePodName的更新版本,而不考虑Podfile.lock中列出的版本。它会将pod更新为可能的最新版本(
pod update
。但是,这也会更新您以前安装的其他POD(更新命令中未包含的POD)的依赖项。有没有一种方法可以更新一个pod,而不去理会所有其他依赖项?确保安装了最新版本的CocoaPods
$pod update PODNAME
最近推出
见:
$pod更新
运行pod update SomePodName
时,CocoaPods将尝试查找pod SomePodName的更新版本,而不考虑Podfile.lock
中列出的版本。它会将pod更新为可能的最新版本(只要它符合pod文件中的版本限制)
如果您在没有任何pod名称的情况下运行pod更新,CocoaPods会将pod文件中列出的每个pod更新为可能的最新版本
只是一个小小的通知
pod update POD_NAME
只有在已安装此pod的情况下才能工作。否则,您将不得不使用
pod update
指挥部现在是2015年
因此,由于pod update SomePod
触及了最新版本cocoapods中的所有内容,我找到了一个解决方法
请执行以下步骤:
pod文件中删除SomePod
pod安装
Podfile.lock
文件中删除SomePod
SomePod
放回pod文件中
pod安装
这一次,我们的pod的最新版本将被安装并保存在
pod文件中。锁定以安装单个pod而不更新现有pod->将该pod添加到您的pod文件中并使用:
pod install --no-repo-update
pod update POD_NAME
要删除/更新特定pod,请使用:
pod install --no-repo-update
pod update POD_NAME
测试 我使用的是cocoapods 1.0.1版
,使用pod更新pod的名称
非常有效。没有更新其他pod,只更新您输入的特定pod。这有点离群,不太可能是OP正在处理的问题,但是如果您在计算机上使用本地pod,pod更新在所有情况下都不起作用
在这种情况下,唯一会触发pod update
工作的是podspec文件中是否有更改。但是,进行更改也将允许pod安装
在这种情况下,您只需修改一些次要的内容,如描述或摘要,然后就可以成功运行install或update命令。只需说:
吊舱安装
-用于安装新吊舱
pod更新
-用于更新现有pod
pod update podName
-只更新特定的pod而不接触其他pod
pod update podName versionNum
-要在不接触其他pod的情况下更新/降级特定pod,您永远无法获得100%的隔离。因为一个pod可能有一些共享的依赖项,如果您尝试更新您的单个pod,那么它也会更新其他pod的依赖项。如果可以,那么:
tl;dr用途:
pod update podName
为什么??阅读下面的内容
pod update
将不尊重pod文件.lock
。它将覆盖它-与单个吊舱有关
pod install
将尊重podfile.lock
,但将根据其锁定的版本(在podfile.lock中)尝试安装podfile中提到的每个pod
此图有助于更好地理解差异:
主要的问题来自于市场
在Podfile
中使用精确版本是不够的
有些人可能认为,在pod文件中指定其pod的确切版本,如pod'A',1.0.0'
,足以保证每个用户都拥有与团队中其他人相同的版本
然后,他们甚至可能使用pod update
,即使只是添加一个新的pod,他们也会认为这不会有更新其他pod的风险,因为它们在pod文件中固定为特定版本
但事实上,这还不足以保证上述场景中的user1和user2总是获得其所有pod的完全相同版本。
一个典型的例子是,如果podA
依赖于podA2
——在A.podspec
中声明为依赖项“A2”,“3.0”
。在这种情况下,在pod文件中使用pod'A',1.0.0'
确实会迫使user1和user2始终使用pod A的1.0.0版本,但是:
- 用户1可能会在版本
3.4
中使用podA2
(因为那是A2
当时的最新版本)
- 当user2在以后加入项目时运行
pod install
时,他们可能会在3.5
版本中获得podA2
(因为A2
的维护者可能同时发布了一个新版本)。
这就是为什么确保每个团队成员使用计算机上所有pod的相同版本的唯一方法是使用Podfile.lock
并正确使用pod install
而不是pod update
以上摘录均来源于
我还强烈建议观看pod更新pod\u NAME
将更新最新的pod,但不会更新Podfile.lock
文件
因此,您可以使用pod的特定版本更新pod文件,例如pod'pod_NAME'、“~>2.9.0”
,然后使用命令pod install
稍后,您可以从pod文件中删除特定的版本命名,并再次使用pod安装
。这将有助于保持Podfile.lock
的更新