由于疏忽Podfile.lock文件带来的困扰

写在前面 相信如果你们是多人开发的,或多或少可能遇到过由于一时疏忽Podfile.lock文件,而带来了困扰.如果你是单人开发那你就不存在说有Podfile.lock文件的问题.
一. Podfile.lock 文件的作用 最后一次更新Pods时,记录所有第三方框架的版本号.
Podfile.lock文件主要包含:PODSDEPENDENCIESSPEC REPOSSPEC CHECKSUMSPODFILE CHECKSUM,用来记录每个pod的版本号、依赖的其他库和每个库对应的podspec.json文件的checksum(SHA1的值).通过这些信息可以确保多人协作时,大家使用的都是相同版本的第三方库.
二. Pod常用指令区别 pod install

  • 如果Podfile.lock文件不存在,会根据Podfile文件安装第三方框架,并生成Podfile.lock文件
  • 如果Podfile.lock文件存在,会根据Podfile.lock文件的版本号来安装第三方框架
pod update
  • 根据Podfile文件安装第三方框架
  • 将所有第三方框架更新到最新版本,并且创建一个Podfile.lock文件覆盖掉原Podfile.lock 文件
pod install/update --no-repo-update
安装框架前不会执行pod repo update,意味着不去检查服务器版本,直接使用本地缓存的框架版本
由于疏忽Podfile.lock文件带来的困扰
文章图片

pod install/pod update过程简述
  • 在通过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中记录的版本来安装
项目中的运用
  • Podfile.lock应该加入版本控制,保证小伙伴们的依赖库版本一致,防止出现难以发现的 bug.另外,在初始创建项目的时候就应该加入版本控制.
  • Podfile的语法最好能尽量严谨,最好指定明确的依赖库版本.
  • 理解 pod installpod update 的区别以及它们对 Podfile.lock 的影响,合理使用.一般就是多用 pod install,在需要时使用 pod update.
写在后面 Podfile更像是一个版本约束,而Podfile.lock才是你真正使用的版本.如果让你去确定你app使用某一个三方库的版本,你不应该找Podfile,而是应该找Podfile.lock文件.
【由于疏忽Podfile.lock文件带来的困扰】最后和谐学习,不急不躁.我还是我,颜色不一样的烟火.

    推荐阅读