参考文章
终端 cd ~/.cocoapods/repos/ , 进入该文件夹下可以发现一个master/文件夹,继续进Specs/,会发现很多很多以数字命名的文件夹,这里其实就是官方管理所有pod库的一个资源库,如果一直cd,进到最底层,会发现其实到最后是每一个库的.podspec.json,这里涉及到.podspec是一个什么东西,以及关于pod库的制作...
平时开发使用pod update或者pod install , 这里其实 pod的工作就是根据pod库名在本地~/.cocoapods/repos/master/Specs/中找到对应的库,若指定版本则找到指定版本的podspec,否则找最高版本的podspec,找到后根据podsepc文件中的配置下载指定的库资源。
这里涉及三个地方的库文件:
1)项目里的库文件版本、 2)本地~/.cocoapods/repos/master/Specs里的库版本、 3)远程服务器的库版本
1,pod install
- 在通过
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
中记录的版本来安装
2,pod update
- 根据
Podfile
文件安装第三方框架 - 将所有第三方框架更新到最新版本,并且创建一个
Podfile.lock
文件覆盖掉原文件
3,pod install/update --no-repo-update
意思是不去检查服务器版本,直接使用本地缓存的框架版本
4,pod repo 或 pod repo list
pod repo
或pod repo list
: 查看本地所有的Spec仓库以及所在地址https://github.com/CocoaPods/Specs/search?q=库名
:github搜索查找对应版本的库文件在Specs下的具体目录位置(由于文件夹都是以数字或者字母来命名的,查找起来会相当麻烦~)
比如需要找Mantle v2.2.0
在Specs
里的具体位置,并且要对其mantle.podspec.json
做一定的修改
首先pod repo
查找Spec仓库地址, 然后github搜索(https://github.com/CocoaPods/Specs/search?q=Mantle
),如下图
红框里的路径即可定位到本地Specs里Mantle v2.2.0
所在路径。