Podfile.lock文件
在开始使用CocoaPods执行完pod install之后会生成一个Podfile.lock文件。这个文件绝对不应忽略它。
该文件用于保存已经安装的Pods依赖库的版本,通过CocoaPods安装了SBJson、AFNetworking、Reachability三个Pods依赖库以后对应的Podfile.lock文件内容为:
PODS:
- AFNetworking (2.3.1):
- AFNetworking/NSURLConnection
- AFNetworking/NSURLSession
- AFNetworking/Reachability
- AFNetworking/Security
- AFNetworking/Serialization
- AFNetworking/UIKit
- AFNetworking/NSURLConnection (2.3.1):
- AFNetworking/Reachability
- AFNetworking/Security
- AFNetworking/Serialization
- AFNetworking/NSURLSession (2.3.1):
- AFNetworking/Reachability
- AFNetworking/Security
- AFNetworking/Serialization
- AFNetworking/Reachability (2.3.1)
- AFNetworking/Security (2.3.1)
- AFNetworking/Serialization (2.3.1)
- AFNetworking/UIKit (2.3.1):
- AFNetworking/NSURLConnection
- AFNetworking/NSURLSession
- FXReachability (1.1.1)
- GCJSONKit (1.5.0)
DEPENDENCIES:
- AFNetworking (~> 2.3.1)
- FXReachability (~> 1.1.1)
- GCJSONKit (~> 1.5.0)
SPEC CHECKSUMS:
AFNetworking: 6d7b76aa5d04c8c37daad3eef4b7e3f2a7620da3
FXReachability: 34c68085c9a12c7fe4f791bdb54e99f14d90b5ae
GCJSONKit: 2e66dba7183b1557f01bcbb3021746073c6fa523
COCOAPODS: 0.33.1
Podfile.lock文件最大得用处在于多人开发。对于没有在Podfile中指定Pods依赖库版本的写法,如下:
pod AFNetworking
该句话用于获取当前AFNetworking这个Pods依赖库的最新版本。
当团队中的某个人执行完pod install命令后,生成的Podfile.lock文件就记录下了当时最新Pods依赖库的版本,这时团队中的其它人check下来这份包含Podfile.lock文件的工程以后,再去执行pod install命令时获取下来的Pods依赖库的版本就和最开始用户获取到的版本一致。
如果没有Podfile.lock文件后续所有用户执行pod install命令都会获取最新版本的AFNetworking,这就有可能造成同一个团队使用的依赖库版本不一致,这对团队协作来说绝对是个灾难!!!
在这种情况下如果团队想使用当前最新版本的AFNetworking依赖库,有两种方案:
更改Podfile,使其指向最新版本的AFNetworking依赖库;
执行pod update命令;
鉴于Podfile.lock文件对团队协作如此重要,我们需要将它添加到版本管理中。
摘取自
https://blog.csdn.net/u012460084/article/details/45721857
-
Podfile.lock 文件
- 最后一次更新Pods时,所有第三方框架的版本号
-
Pod常用指令区别:
-
$ pod install- 如果
Podfile.lock文件不存在,会根据Podfile文件安装第三方框架,并生成Podfile.lock文件 - 如果
Podfile.lock文件存在,会根据Podfile.lock文件的版本号来安装第三方框架
- 如果
-
$ pod update- 根据
Podfile文件安装第三方框架 - 将所有第三方框架更新到最新版本,并且创建一个
Podfile.lock文件覆盖掉原文件
- 根据
-
$ pod install/update --no-repo-update- 安装框架前不会执行
pod repo update,意味着不去检查服务器版本,直接使用本地缓存的框架版本
- 安装框架前不会执行
-

-
pod install过程简述:- 在通过
pod install或pod update指令安装框架前,都会先执行pod repo update指令,将服务器最新的框架下载到本地,项目中是否安装最新版本的框架,取决于安装方式:pod install(指定版本)和pod update(最新版本) - 在第一次执行
pod install指令时,podfile.lock还不存在,会根据podfile中的说明来集成框架
如果指定框架版本号,安装指定版本,如果未指定,安装最新的,并自动生成podfile.lock文件 - 当以后再次执行
pod install指令时,会根据podfile.lock中记录的框架版本号来安装框架.
即便服务器中有最新的版本,通过pod install指令也不会安装最新的第三方框架,只会根据podfile.lock中记录的版本来安装
- 在通过
-
项目中的运用
多人协同开发中,在设置忽略文件时,我们通常不会将
pods文件夹每次都推送至服务器,这样会造成服务器资源浪费,通常会将Pods文件夹忽略掉 忽略Pods文件夹当需要从另外一台电脑上
clone项目协作开发时,根据podfile.lock指定的框架版本号,通过pod install指令安装框架,这样可以保证每个人项目中的框架版本都是一致,不会引起冲突
作者:ShenYj
链接:https://www.jianshu.com/p/af789991690c
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。