pod install 不起作用的原因探究

1,077 阅读2分钟

首先我们要知道pod install的运行原理,默认它是不去更新我们的pod库的。当我们执行了pod install 命令,要安装某个pod 库的时候,pod install 执行的是懒加载库的策略。

执行pod install命令后,cocoapods首先要比对Podfle文件中的pod语句和Podfile.lock文件的限制版本,如果版本发生变化,cocoapods会去~/.cocoapods/安装目录下进行搜索这个库的podspec文件,里面会记录这个库的git源代码地址,然后根据版本号下载代码到cocoapods的缓存目录~/Library/Caches/Cocoapods。然后再把代码集成到你的工程里。

如果是第一次执行pod install,Podfile文件有声明要加载版本号,那么就会安装与声明版本号相等或者最接近的那个版本,并且在Podfile.lock文件记录已安装的版本。 当你不是第一次安装库的时候,如果版本也没有发生变化,那么cocoapods是不会做任何事情的,这就是已经安装过一遍的库再次执行pod install很快就会跳过,其实只是执行了Podfile与Podfile.lock的比对步骤

那么是不是改变了版本号就一定会去git下载对应版本的库呢,那要看这个版本库之前有没有对应的缓存,如果之前cocoapods有缓存,那么也只是执行了从cocoapods缓存复制到你项目里替换集成,如果是缓存里没有的,那肯定是要到git上去拉取

那么是不是pod install一定不会更新cocoapods里的pod库呢,当然不是,当cocoapods里要安装的库的版本不存在(没有或者大于),那么cocoapods就会去远程去拉取对应版本(tag)的podspec文件到本地,并执行安装流程