多版本Cocoapods切换

背景

很多 iOS 项目都是基于特定版本的 CocoaPods,使用其他版本的 CocoaPods 执行 pod install 或 pod update可能出现项目无法编译的问题。
由于我们的电脑上很有可能使用了其他的版本,本文主要介绍如何解决这种多版本 CocoaPods 切换的问题。

查看本地装的pod

可以通过

1
gem list --local | grep cocoapods

命令来查看我们电脑上安装了哪些版本的pod,并可以通过

1
pod --version

来查看当前默认版本。

使用Bundler

Bundler 是一个 Ruby 项目的管理工具,可以理解成为 Ruby 界的 “CocoaPods”。准确来说,CocoaPods 是借鉴了 Bundler 的思想和模式。由于 CocoaPods 本身也是一个 Ruby 项目,因此我们可以通过 Bundler 来管理我们要使用的 CocoaPods 版本,完整的步骤如下所示:

  1. 安装Bundler,打开终端输入以下命令:

    1
    gem install bundler
  2. 在终端中进入到项目所在的根目录就是podfile所在的目录。

  3. 创建Bundler的配置文件Gemfile,在终端中输入下面的命令即可。

    1
    bundle init
  4. 在Gemfile中设置cocoapods的版本。例如:

    1
    2
    source "https://rubygems.org"
    gem "cocoapods", "1.5.3"
  5. 安装特定版本的pod,如果已经安装则可忽略这一步。执行如下命令:

    1
    bundle install

此时,Gemfile中配置的pod版本就安装到本地了。

  1. 使用Bundler控制上一步安装的pod来安装我们所需的pods。除了有bundle exec 这个前缀,其他和我们平时用pod命令一样。若去掉bundle exec 这个前缀,运行的就是默认版本的cocoapods了。
    1
    bundle exec pod install

另外,还可以通过其他方式运行指定版本的pod,如:

1
pod _1.5.3_ install

亲测有效。

谢谢您的支持!