iOS pod install和pod update区别

首先我们了解一下Podfile.lock:

当我们用cocoapod管理第三方库的时候,在第一次运行 pod install 时会自动生成一个Podfile.lock 文件,Podfile.lock 文件主要包含三个块:PODSDEPENDENCIESSPEC CHECKSUMS,用来记录每个pod的版本号、依赖的其他库和每个库对应的podspec.json文件的 checksum(SHA-1算法)。通过这些信息可以确保多人协作的时候,大家使用的是相同版本的第三方库。

Podfile.lock 中会标注项目当前依赖库的准确版本,其中包括了项目在 Podfile 中直接标注使用的库,以及这些库依赖的其他库。这样的好处是当你跟小伙伴协同开发时,你的小伙伴同步了你的 Podfile.lock 文件后,他执行 pod install 会安装 Podfile.lock 指定版本的依赖库,这样就可以防止大家的依赖库不一致而造成问题。因此,CocoaPods 官方强烈推荐把 Podfile.lock 纳入版本控制之下。但是,Podfile.lock 并不是一成不变的,当你修改了 Podfile 文件里使用的依赖库或者运行 pod update 命令时,就会生成新的 Podfile.lock 文件。

总结:podfile.lock,原来是用来锁定项目依赖库版本的文件

pod install 和pod update区别:

pod install:使用 pod install,你只会安装 Podfile 中新改变的东西,并且会:优先遵循 Podfile 里指定的版本信息;其次遵循 Podfile.lock 里指定的版本信息来安装对应的依赖库。比如:下面在 Podfile 里没指定 AFNetworking 的版本,但是 Podfile.lock 里指定了 AFNetworking 的版本是 3.0.1,那么即使现在有最新的 4.0.1,最终也会安装 3.0.1。但是如果 Podfile 里指定了 AFNetworking 版本是 4.0.1,那么则会安装 4.0.1,并更新 Podfile.lock 里的信息。

pod update:使用 pod update,你会根据 Podfile 的规则更新所有依赖库,不会理睬现有的 Podfile.lock,而是根据安装依赖库的情况生成新的 Podfile.lock 文件。当运行pod update PODNAME时, CocoaPods将尝试查找PODNAME更新的pod版本, 会忽略掉Podfile.lock中已经存在的版本.如果直接运行pod update, 没有指定PODNAME, CocoaPods会把Podfile中所有的pod都更新到最新版本.(如果已经是最新版本了, 则不更新)

 所以当有需求是只改变某一个第三方库的版本,而其余的库不变的时候就可以直接修改Podfile.lock里面的版本,然后执行pod install

补充:

pod outdated:当运行pod outdated时, CocoaPods将列出所有比Podfile.lock(每个pod当前安装的版本)中, 已经列出的版本更新的pod版本. 这意味着如果你在这些pod上运行pod update PODNAME, 它将会把指定的pod更新到最新版本.

pod repo update 的工作就是更新pod资源目录,也就是master下的资源,简单说 如果有一个第三方库发布了一个最新的版本,如果你不执行pod repo update,那么你的本地是不会知道有一个最新版本的,还会一直以你本地的资源目录为准。那么你永远都拿不到这个库的最新版本。
使用pod update是默认会执行一遍pod repo update ,所以会发现如果你的pod库引用多了,每次pod update都很慢,网络如果不好更是经常会断掉,就是因为你在更新pod时,也更新了资源目录

pod update --no-repo-update
这条命令表示只根据本地目录更新库,不需要拉取远程

pod setup命令会将远程索引库拷贝到本地,生成本地索引库,通过pod search生成检索的索引文件(以json的形式存在,key对应的是框架名称,value对应的是框架索引文件),pod search 是在本地索引库中而不是远程索引库搜索,根据框架名搜到描述文件,pod install 就会根据描述文件中的真实源码地址去下载框架源码。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值