我的Pod文件中有一个库列表。我决定在Pod文件中添加新的。但我想保留以前的所有图书馆没有更新,只需安装(添加)这个库
pod 'JSAnimatedImagesView', '~> 1.0.0'
所以pod update
和pod install
将所有库更新到较新版本,但我不想更新它们只需安装pod 'JSAnimatedImagesView', '~> 1.0.0'
答案 0 :(得分:95)
pod install --no-repo-update
这会安装新项目而不更新现有的repos(版本化或不版本化)。
如果您有大量的回购并希望快速安装新商品,它也会更快。
答案 1 :(得分:3)
(截至2019年3月15日)
要安装1个新Pod:将1个所需的新Pod添加到Podfile中。然后运行:
pod install --no-repo-update
运行此命令时,它将不更新其他任何广告连播。
答案 2 :(得分:2)
如果您不想更新特定的库,则应将其锁定在要保留的版本
pod 'AFNetworking', '1.2.0'
pod 'JSAnimatedImagesView', '~> 1.0.0'
将AFNetworking
保留在V1.2.0上,但获取最新的JSAnimatedImagesView
这使podfile可以转移到其他位置(和开发人员),并使您免于忘记恢复podfile,直到您打算更新pod
答案 3 :(得分:1)
当开始使用项目时,您可能希望使用最新版本的Pod。如果是这种情况,只需省略版本要求。
pod 'SSZipArchive'
稍后在项目中,您可能希望冻结到Pod的特定版本,在这种情况下,您可以指定该版本号。
pod 'Objection', '0.9'
答案 4 :(得分:1)
您可以尝试使用更新命令https://guides.cocoapods.org/terminal/commands.html#pod_update
pod update [POD_NAMES ...]
更新指定POD_NAMES标识的Pod。如果未指定POD_NAMES,则会更新所有Pod,忽略Podfile.lock的内容。
答案 5 :(得分:0)
将新的pod repo添加到您的podfile并使用下面的命令
pod install
示例表格来源pod install vs. pod update
场景示例
这是一个场景示例,用于说明在项目生命周期中可能遇到的各种用例。
第1阶段:User1创建项目
user1创建一个项目,并希望使用pod A,B,C。他们使用这些pod创建Podfile,然后运行pod install。
这将安装pod A,B,C,我们说它们都是1.0.0版本。
Podfile.lock将跟踪它,并注意A,B和C各自安装为版本1.0.0。
顺便说一句,因为他们第一次运行pod安装并且Pods.xcodeproj项目还没有存在,该命令还将创建Pods.xcodeproj和.xcworkspace,但是&#39 ;命令的副作用,而不是它的主要作用。
第2阶段:User1添加新广告连播
稍后,user1想要将pod D添加到他们的Podfile中。
因此他们应该在之后运行pod安装,这样即使pod B的维护者在第一次执行pod安装后发布了他们的pod版本1.1.0,该项目将继续使用版本1.0.0 - 因为只有user1想要添加pod D,而不会有意外更新到pod B的风险。
有些人错误之处,因为他们在这里使用pod更新 - 可能会认为这是"我想用新的pod更新我的项目&#34 ;? - 而不是使用pod安装 - 在项目中安装新的pod。
第3阶段:User2加入项目
然后,之前从未参与过该项目的user2加入了团队。他们克隆存储库然后使用pod install。
Podfile.lock的内容(应该提交给git repo)将保证它们将获得完全相同的pod,其版本与user1使用的完全相同。
即使版本1.2.0的pod C现在可用,user2也将获得版本1.0.0中的pod C.因为那是在Podfile.lock中注册的内容。 Pod C由Podfile.lock锁定到1.0.0版本(因此该文件的名称)。
第4阶段:检查广告连播的新版本
稍后,user1想要检查是否有可用于pod的更新。他们运行pod过时,告诉他们pod B有一个新的1.1.0版本,pod C有一个新的1.2.0版本发布。
user1决定他们想要更新pod B,但不是pod C;所以他们将运行pod更新B,它将B从版本1.0.0更新到版本1.1.0(并相应地更新Podfile.lock)但将保持pod C版本1.0.0(并且不会将其更新为1.2.0)。