iOS开发

CocoaPods 更新库

2019-03-13  本文已影响0人  koin447

我们在团队开发时,经常需要更新 CocoaPods,有时候会遇到更新不到最新版本第三方库的问题。

更新第三方库的常用的命令

首先回顾几个更新第三方库的常用的命令

更新所有库最简单基本的方法:

pod update

更新本地仓库:

pod repo update

简单来说,这条命名是用来更新本地 CocoaPods 的 spec 资源配置信息。安装完 CocoaPods 后,在用户根目录下有个隐藏文件夹~/.cocoapods,里面是 CocoaPods 收录的所有库的配置信息。pod repo update实际是更新整个.cocoapods下的所有库,其实我们也可以只更新其中某个库来达到快速可用的目的。

 pod repo update ~/.cocoapods/repos/master/Specs/

更新指定第三方库最简单基本的方法:

pod update 库名

把Podfile内全部的库更新重新安装:

pod install 

只更新新添加的库,已更新的库忽略:

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

只更新指定的库,其它库忽略:

pod update 库名 --verbose --no-repo-update

参数解释

参数 –verbose 和 –silent

这两个参数是用来控制 pod 命令的,有些人不希望看到输出的情况下可以选择 --silent,--verbose 的意思则是输出详细日志信息。
加 --verbose 的意义在于可以输出更详细的配置过程 debug 信息,在书写时位置也可以换。

参数 --no-repo-update:

在我们输入pod install或者pod update之后,CocoaPods 首先会去匹配本地的 spec 库,在确认 spec 版本库不需要更新之后,才会下载相应的库文件,这样比较耗时。所以一般使用时会加上 --no-repo-update,跳过 spec 版本库更新匹配。
但是这样会有个问题,如果 github 上 pods 的三方库有新版本了,你本地搜索到的还是旧版本,如果用的新版本号是无法装配的,所以每隔一段时间最好执行一下pod repo update
另外首次 install 不应该添加这个标志,后续修改 Podfile 的时候可以适当使用,加快 pod 速度。

遇到的更新场景

情况一:

Cocoapods 本地 Pod 的索引文件没有更新,所以本地库还是旧版本,自然怎么都无法更新到最新版。

解决方法

  1. 打开终端,查看一下 Cocoapods 的版本号:pod --version
    如果不是最新版本,升级一下 Cocoapods 版本:sudo gem install -n /usr/local/bin cocoapods --pre
  2. 但是有时候 Cocoapods 升到最新版本后,cd 到工程文件下pod install,发现还是没有更新最新的库。这时候需要更新本地 Pod 的索引文件:pod setuppod repo update
  3. 此时再pod installpod update,应该就是最新的了。

情况二:

因为公司搭建了自己的 GitLab 库,经常发现pod update下来的还是旧代码。
这是由于 Pod 缓存造成的,虽然本地和远程 Git 仓库都是最新版本,但是本地 Pod 缓存中,依旧有旧版的缓存,执行pod update时,会先从本地缓存读取数据。

解决方法

  1. cd 到 ~/资源库/Caches/CocoaPods/Pods/Release/库名
  2. 删除库名下的文件,如~/资源库/Caches/CocoaPods/Pods/Release/库名/1.0.0-fbd65
  3. pod cache clean 库名
  4. cd 到项目中,删除 Pods/库名,删除 Podfile.lock,再pod update,代码更新成功。
上一篇下一篇

猜你喜欢

热点阅读