写在前面
相信如果你们是多人开发的,或多或少可能遇到过由于一时疏忽Podfile.lock
文件,而带来了困扰.如果你是单人开发那你就不存在说有Podfile.lock
文件的问题.
一. Podfile.lock 文件的作用
最后一次更新Pods
时,记录所有第三方框架的版本号.
Podfile.lock
文件主要包含:PODS
、DEPENDENCIES
、SPEC REPOS
、SPEC CHECKSUMS
、PODFILE 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
,意味着不去检查服务器版本,直接使用本地缓存的框架版本
pod install/pod update过程简述
- 在通过
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
中记录的版本来安装
项目中的运用
-
Podfile.lock
应该加入版本控制,保证小伙伴们的依赖库版本一致,防止出现难以发现的bug
.另外,在初始创建项目的时候就应该加入版本控制. -
Podfile
的语法最好能尽量严谨,最好指定明确的依赖库版本. - 理解
pod install
和pod update
的区别以及它们对Podfile.lock
的影响,合理使用.一般就是多用pod install
,在需要时使用pod update
.
写在后面
Podfile
更像是一个版本约束,而Podfile.lock
才是你真正使用的版本.如果让你去确定你app
使用某一个三方库的版本,你不应该找Podfile
,而是应该找Podfile.lock
文件.
最后和谐学习,不急不躁.我还是我,颜色不一样的烟火.
网友评论