CocoaPods之Podfile.lock

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,意味着不去检查服务器版本,直接使用本地缓存的框架版本
image
  • pod install过程简述:
    • 在通过pod installpod 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
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容