pod install 和 pod update

2018-12-04 23:37:37

pod install


当我们新建一个Podfile文件运行后,会自动生成一个Podfile.lock文件,Podfile.lock文件里存储着我们已经安装的依赖库(pods)的版本。
当我们第一次运行Podfile时,如果对依赖库不指定版本的话,cocoapods会安装最新的版本,同时将pods的版本记录在Podfile.lock文件中。这个文件会保持对每个pod已安装版本的跟踪,并且锁定这些版本。
再执行pod install的话,只会处理没有记录在Podfile.lock中的依赖库,会查找匹配Podfile中描述的版本。对于已经记录在Podfile.lock的依赖库,会下载Podfile.lock文件中记录的版本,而不会检查是否有更新。当然,如果你约束了pods的版本的话,会按照你指定的版本进行安装,同时也会更新Podfile.lock记录的信息。

//Podfile 文件platform:ios,'8.0'target :CocoaPods_Demo dopod 'AFNetworking'//当没有指定版本,并且第一次运行 pod install时,会下载最新版本 3.2.0end//Podfile.lock文件PODS://看出记录是已经按安装的pods版本
  - AFNetworking (3.2.0):
    - AFNetworking/NSURLSession (= 3.2.0)
    - AFNetworking/Reachability (= 3.2.0)
    - AFNetworking/Security (= 3.2.0)
    - AFNetworking/Serialization (= 3.2.0)
    - AFNetworking/UIKit (= 3.2.0)
  - AFNetworking/NSURLSession (3.2.0):
    - AFNetworking/Reachability
    - AFNetworking/Security
    - AFNetworking/Serialization
  - AFNetworking/Reachability (3.2.0)
  - AFNetworking/Security (3.2.0)
  - AFNetworking/Serialization (3.2.0)
  - AFNetworking/UIKit (3.2.0):
    - AFNetworking/NSURLSession
DEPENDENCIES:
  - AFNetworking
SPEC CHECKSUMS:
  AFNetworking: 8ac6017b94ea105479f7776e5288e48ae9c59bb4
PODFILE CHECKSUM: 56887359088f67698ba67f44ab92d6976c593eb9
COCOAPODS: 1.4.0//COCOAPODS版本

pod update


推荐用法:pod update 要更新库的名字
这个命令会忽略Podfile.lock中的记录,直接去找符合Podfile文件中的该依赖库的约束版本(无约束的话就是最新版本)。


用法


pod install使用场景:

1,新创建工程,第一次引入pod库时。
2,修改了Podfile文件,添加或删除了所依赖的pod库时。
3,团队中新人拉取工程后获取pod库时。
4,团队中,不同开发者要同步对pod库的依赖时。
4.1,有人改变了依赖关系,删除或增加pod时。
4.2,有人执行了pod update,此时他的Podfile.lock文件中的跟踪版本就已经变更,此时,其他人只要pod install就能更新为和Podfile.lock文件中的版本。
4.3,如果Podfile和Podfile.lock的记录相冲突,Podfile文件中指定了低于Podfile.lock中记录的版本。会以Podfile文件为准,并在获取成功后更新Podfile.lock文件。

最后


pod env:查看已经安装的cocoapods版本。
pod outdated:查看Podfile文件中的依赖库的最新版本。

参考致谢:
https://blog.csdn.net/cwf19860527/article/details/54139214
https://blog.csdn.net/cwf19860527/article/details/54139214




  • 2017-07-19 07:54:11

    Javascript中delete运算符

    Delete是Javascript语言中使用频率较低的操作之一,但是有些时候,当我们需要做delete或者清空动作时,就需要delete操作。在这篇文章中,我们将深入探讨如何使用它,以及它是如何工作的。

  • 2017-07-26 11:57:00

    Laravel 定时任务

    在 php 中使用定时器是一件不太简单的事情,之前大概只能通过 cron 来实现定时任务。但是在 Laravel5 中,定时任务将会变得很简单。

  • 2017-08-03 21:16:46

    Node.js 里面那些遗失的 ES6 特性

    其实 Node.js 对 ES6 的很多特性都已经开始支持了。 在 Node.js 使用的 JS 引擎 V8 里面将不同状态 ES6 特性分成了 3 个等级:

  • 2017-08-08 11:17:17

    nginx 反向代理 取得真实IP和域名

    nginx反向代理后,在应用中取得的ip都是反向代理服务器的ip,取得的域名也是反向代理配置的url的域名,解决该问题,需要在nginx反向代理配置中添加一些配置信息,目的将客户端的真实ip和域名传递到应用程序中。