前言
最近公司有个需求,要做一键登录功能,然后选择了某平台,按照流程,我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
:加上参数可以显示命令执行过程中的详细信息。