转发自:https://juejin.cn/post/6844903609826541582
先说一下pod官方库
终端 cd ~/.cocoapods/repos/ , 进入该文件夹下可以发现一个master/文件夹,继续进Specs/,会发现很多很多以数字命名的文件夹,这里其实就是官方管理所有pod库的一个资源库,如果一直cd,进到最底层,会发现其实到最后是每一个库的.podspec.json,这里涉及到.podspec是一个什么东西,以及关于pod库的制作,可以自行查阅资料。
我们平时开发pod update或者pod install , 这里其实 pod的工作就是根据pod库名在master/Specs/中找到对应的库,若指定版本则找到指定版本的podspec,否则找最高版本的podspec,找到后根据podsepc文件中的配置下载指定的库资源。
那么pod repo update 的工作就是更新pod资源目录,也就是master下的资源,简单说 如果有一个第三方库发布了一个最新的版本,如果你不执行pod repo update,那么你的本地是不会知道有一个最新版本的,还会一直以你本地的资源目录为准。那么你永远都拿不到这个库的最新版本。
可能有些人会问了,我平时从来不会用pod repo update也可以拿到最新的库,那是因为在使用pod update是默认会执行一遍pod repo update ,所以会发现如果你的pod库引用多了,每次pod update都很慢,网络如果不好更是经常会断掉,就是因为你在更新pod时,也更新了资源目录
pod update 工作流程 : 先拉取远程最新目录,再根据目录中的资源重新更新一遍pod
如果你的podfile中每个库都指定了版本还好,如果没有,那么每次都是拉一遍最新库, 这时候就要用到命令
pod update --no-repo-update 这条命令表示只根据本地目录更新库,不需要拉取远程
再说一下有些时候会引用一些私有库 , pod repo update 会把 ~/.cocoapods/repos/这个目录下所有的资源库目录都更新一遍,有时候不想更新master,只想更新某个具体的私有库怎么办。。命令。。。强大而又实用
pod repo update ~/.cocoapods/repos/***/ 需要更新哪个就指定哪个文件夹就可以了
网友评论