美文网首页Kevin的IOS开发专题iOS开发
cocoapods,pod repo update 快速更新

cocoapods,pod repo update 快速更新

作者: lltree | 来源:发表于2018-09-18 10:52 被阅读140次

    原文作者,本帖只为学习
    cocoapods现在几乎成了iOS开发的标配工具之一,可以统一、高效的引入和管理第三方库,可以来自Github,私有Gitlab或者本地文件系统。安装教程已经多得用度娘就能随便搜出来能用的,为什么pod install慢也有了各种加速姿势。本篇聊聊pod repo update或者pod install --repo-update命令。

    有个场景,几个人共同维护一个项目,Podfile也是共同维护一份。有一天其中一个人,升级了Podfile中某个库的版本,比如AFNetworking3.0.4升级到了3.1.0pod 'AFNetworking', '~> 3.1.0’。然后,你更新了最新的Podfile,跑了一下pod install。。。。。。

    1、先从pod install抛出的异常开始,如下图:

    3649773-e62b603d17635515.png
    为了解决这个异常可能尝试一下:
    (1)是不是Podfile和Podfile.lock 文件不同步?删掉.lock文件再pod install一次,仍然报错。
    (2)是不是AFNetworking没有3.1.0版本?pod search afnetworking一下,版本存在。
    如果被我猜中了,证明你把焦点放在了异常前三行,而忽略了最关键的信息:None of your spec sources contain a spec satisfying the dependencies: AFNetworking (~> 3.1.0), AFNetworking (= 3.1.0)

    这句话的意思是说:你spec资源中不包含AFNetworking的3.1.0的配置信息。这里面有个关键词,spec资源和配置信息。
    然后最下面提醒pod repo update’ does not happen on ‘pod install’ by default。意思是默认情况下,执行pod install不会自动执行pod repo update命令。那么pod repo update做了什么?

    2、pod repo update

    简单来说,pod repo update命名是用来更新本地cocoapods的spec资源配置信息。
    安装完cocoapods后,在用户根目录下有个隐藏文件夹,/Users/<user>/.cocoapods,里面是cocoapods收录的所有库的配置信息,/Users/<user>/.cocoapods/repos/master/Specs/<lib name>。比如AFNetworking就是/Users/<user>/.cocoapods/repos/master/Specs/AFNetworking,内部分版本包含多个文件夹,每个文件夹内包含一个配置文件,比如AFNetworking.podspec.json

    3649773-03a9f8ccfc7c9469.png

    上面报错的原因就是,Podfile中AFNetworking的版本更新到了3.1.0,但是本地.cocoapods下找不到相应的配置文件。
    然后按照提示,执行pod repo update,碰到网速慢的时候,命令执行完了就不动了,又被迫摆出葛优躺等着。
    重点来了,pod repo update实际是更新整个.cocoapods下的所有库,其实我们可以只更新其中某个库来达到快速可用的目的。下面提供两个方法解决:

    (1)正规方法:
    指定更新单独库pod repo update /Users/<user>/.cocoapods/repos/master/Specs/<lib name>

    (2)野路子:
    如果方法1仍然无法解决问题,而又着急使用。可以直接到相应目录下手动增加缺少的版本目录和spec文件,/Users/<user>/.cocoapods/repos/master/Specs/<lib name>/3.2.0/<lib name>.spec。spec文件参考git上相应库的版本。

    灵活点,挺好!

    相关文章

      网友评论

        本文标题:cocoapods,pod repo update 快速更新

        本文链接:https://www.haomeiwen.com/subject/pmiynftx.html