cocoaPods版本有点旧,安装的SDK不是最新版本的解决方案

747 阅读2分钟

前言

最近公司有个需求,要做一键登录功能,然后选择了某平台,按照流程,我pod了某库,然后直接去开发。结果在开发的时候,发现了一个小bug。我赶紧去下载一下SDKDemo,发现那个bug并没有触发。然后我对照了一下version,结果发现SDKDemo里面的版本是最新的。那我们我们就去更新一下最新的SDK。

更新流程

搜索版本

pod search XXX

第一步,我们选择去搜索一下该SDK,看下最新版本是多少,结果发现最新的和SDKDemo是一样的。

那我们直接在Podfile里面,pod '', '~> zui.xin' ,很明显执行后会报错。

[!] CocoaPods could not find compatible versions for pod "":

  In Podfile:

    XXX (~> 1.0.0.0)

None of your spec sources contain a spec satisfying the dependency: `XXX (~> 1.0.0.0)`.

You have either:

 * out-of-date source repos which you can update with `pod repo update` or with `pod install --repo-update`.

 * mistyped the name or version.

 * not added the source repo that hosts the Podspec to your Podfile.

很明显,没有一个规范源包含满足依赖的规范的版本。

更新cocoaPods

第一步, 我们先查看下cocoaPods的版本 pod --version

结果显示我的版本为1.10.1

然后我执行更新命令:sudo gem install cocoapods

给了我一个报错

ERROR:  While executing gem ... (Gem::FilePermissionError)

    You don't have write permissions for the /usr/bin directory.

结果显示我没有权限。

那我们就给一个权限sudo gem install -n /usr/local/bin cocoa pods

然后我们再查一下版本,还是没有变,这以为着我们没有更新成功。

那我们就改一下sudo gem install -n /usr/local/bin cocoapods --pre

这次终于成功了。版本变为1.11.2

更新SDK

那我们就直接去远程更新SDK,pod update 'XXX'。大功告成。

常用命令

  • pod install:先会在本地的Podfile.lock中的pod查找,里面记录了已有安装的SDK版本(包括版本号),找到就直接下载指定版本;如果不在Podfile.lock中的pod,会安装Podfile中指定的版本。

  • pod update:会根据我们的Podfile所列出来的pod新版本,进行下载安装,没有指定版本号就是下载最新的。

  • pod update --no-repo-update:根据本地目录repos更新库,不需要拉取远程。

  • pod update -verbose --no-repo-update:加上参数可以显示命令执行过程中的详细信息。