cocoapods小技巧

总结:

git fetch下载的repo要比git clone下载的repo大许多。

给定一个tag标签,git clone明确了一个库的tag标签在默认分支上,而git fetch则不能。

git fetch为了确定库的标签在哪个分支上需要做大量的计算,而git clone则不需要。

我们可以看出git clone要比git fetch快许多,所以要在使用cocoapods时要尽量避免执行git fetch,看下下面几种解决方案:

方案一: 使用下面两个命令行

pod installl --no-repo-update --verbose

pod update --no-repo-update --verbose

其中--verbose的作用就是打印出执行过程中详细的信息,--no-repo-update的作用就是禁止更新repo,这样就避免执行了git fetch,从而加快速度。但是如果repo本身就很老(第三方库版本比较低)的时候,仍然是需要更新repo的,这种情况下如何处理呢?请看方案二和方案三。

方案二: 进入到repos目录下,通过git clone直接添加master库,命令行如下:

1

2

3$ cd ~/.cocoapods/repos

$ pod repo remove master

$ git clone https://github.com/CocoaPods/Specs.git master

首先要把本地老的master分支给移除掉,然后使用git clone从github镜像源上clone一份且设置本地master库。这样本地的repo就是最新的了,此时在进入到当前工程目录下,执行方案一提供的命令行。这样就解决了工程依赖的第三方库版本过低需要更新的问题。但是我们在clone github镜像源的时候,发现速度还是比较慢的,这是因为国内访问github的速度不给力,没办法的事情,这个时候可以考虑挂一个VPN或者使用国内一些网站提供的镜像源。

注意点:

master repo里面存放的是所有第三方库的地址列表,下载第三方库对应的源码还是要到指定的源码存放地址(podspecs中有指定)去下载。更换repo源只是加快了repo的下载速度,并不会加快第三方库源码的下载速度,两者是没有任何关系的。

在工程中尽量避免直接使用pod update、pod install,在后面添加--no-repo-update后使用。

工程中依赖第三方库版本过低,可以先到repos目录下,使用git clone更新master repo,然后在工程中使用pod update --no-repo-update命令。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容