本文按照官网的叙述用大白话“翻译”出来,加上个人的经验和见解,可以更方便理解
参考链接 CocoaPods官网之命令的详细介绍
前言
很多同学们分不清 pod install
和 pod update
命令的区别和用法,认为 pod install
只有第一次安装时和报错提示时使用,其实不是这样的。第三方库的版本有时候决定了我们开发的进度和心情,管理好这些版本可以使开发者更方便的使用。
先从Podfile文件讲起。
Podfile 文件
新建的Podfile文件,添加了 inhibit_all_warnings!
,作用是忽略第三方库的警告。
# platform :ios, '9.0'
把 #
删了,作用是指定平台和版本,否则 pod install
后会出现警告,但是貌似没什么副作用。
# use_frameworks!
,一般混编或是用 Swift
导入时需要打开,其它情况不用处理即可。
接下来是个容易被忽略的点
pod 'FMDB', '2.0'
pod 'FMDB', '~> 2.0'
区别就是:
pod 'FMDB', '2.0'
只会导入2.0版本的
pod 'FMDB', '~> 2.0'
会导入2.0大版本的最新版,比如最新版是2.9,那这样写就会导入2.9版本,但是不会超过3.0版本。
pod install
第一次都会使用该命令,会把每个安装的库的版本写入 Podfile.lock
文件中,不管有没有指定库的版本,都会把当前安装的版本写入。
在后面添加或删除库时使用该命令不会影响到其余库的版本,因为 Podfile.lock
已经锁定了,不会去检查更新每个库的版本。
pod outdated
会列出当前所有库的最新版本
pod update
如果采用 pod 'FMDB', '~> 2.0'
导入并执行 pod update
则会检查更新到最新版本,例如2.9。
如果没有指定版本,只是 pod 'FMDB
,则会更新到最新的版本,例如4.2.3。
总之会忽略 Podfile.lock
中已经锁定的版本。
pod update PODNAME
会检查并更新指定库的版本。
pod update
会检查并更新所有库的版本。
执行完该命令后,会将新版本的版本号写入 Podfile.lock
中。
用途实例
比如A和B两个人一起合作写代码。
A引入一个库版本为1.0,pod install
后使用,此时这个库可能有2.0版本了。B拉下项目后 pod install
就会和A使用同一环境的pod,这时B添加一个库进去,执行 pod install
A也执行 pod install
,他们还是同一环境。
但是如果B拉下项目后执行了 pod update
,那么库的版本从1.0更新到了2.0,到时候B添加项目,A执行 pod install
后逻辑就会出问题了。
如果必须更新某个库,一定要执行 pod update PODNAME
,并且制定版本号,方便你我他使用。
最后
在开发中不管是单人还是多人,使用pod优先使用 pod install
命令,并且养成指定版本号的习惯。
最重要的是知道自己的逻辑,到底是要更新还是直接安装。
push的时候一定要把 Podfile.lock
文件提交上去,要不就乱套了
push的时候一定要把 Podfile.lock
文件提交上去,要不就乱套了
push的时候一定要把 Podfile.lock
文件提交上去,要不就乱套了
完。