美文网首页移动开发
如何在本地安装多个版本的 CocoaPods

如何在本地安装多个版本的 CocoaPods

作者: 公爵海恩庭斯 | 来源:发表于2017-04-13 14:39 被阅读1004次

修订历史

Version Date Description
1.0 2017.4.3 Init

问题

问题的原因在于,有两个项目需要同步开发,其中老项目使用 0.39 版本的 CocoaPods,而新项目需要使用 1.0 以上版本的 CocoaPods。

解决方案

1. 升级 CocoaPods

因为本地安装的是 0.39,需要先升级:
$ sudo gem install cocoapods
$ pod setup

关于如何安装 CocoaPods,参考 用CocoaPods做iOS程序的依赖管理

安装成功:

➜  LightningMain git:(master) ✗ pod --version
1.2.1
➜  LightningMain git:(master) ✗

查看本地安装的 CocoaPods 版本列表:

➜  WeiboMain:note git:(dev_771) ✗ gem list cocoapods

*** LOCAL GEMS ***

cocoapods (1.2.1, 1.1.1, 0.39.0)
cocoapods-core (1.2.1, 1.1.1, 0.39.0)
cocoapods-deintegrate (1.0.1)
cocoapods-downloader (1.1.3, 0.9.3)
cocoapods-plugins (1.0.0, 0.4.2)
cocoapods-search (1.0.0, 0.1.0)
cocoapods-stats (1.0.0, 0.6.2)
cocoapods-trunk (1.2.0, 0.6.4)
cocoapods-try (1.1.0, 0.5.1)
➜  WeiboMain:note git:(dev_771) ✗

2. 安装 CocoaPods 0.39

CocoaPods 其实并不是覆盖安装,除非你显式的删除:

gem uninstall cocoapods

因为我之前执行过上一步,所以我还需要重新安装 CocoaPods 0.39:

sudo gem install cocoapods -v 0.39

安装成功:

➜  ~ pod --version
1.2.1
➜  ~ pod _0.39.0_ --version
0.39.0

安装后可以通过以下命令指定 CocoaPods 的版本:

pod _0.39.0_ install

参考 Install multiple version of cocoa pods

3. 修改 CocoaPods 默认版本

到目前为止,CocoaPods 的默认版本是最新的 1.2.1,而老项目中写了很多脚本,所以我需要将默认的 CocoaPods 改为 0.39。

➜  ~ which pod
/Users/waterforest/.rvm/rubies/ruby-2.2.4/bin/pod
➜  ~ subl /Users/waterforest/.rvm/rubies/ruby-2.2.4/bin/pod

修改前:

require 'rubygems'

version = ">= 0"

if ARGV.first
  str = ARGV.first
  str = str.dup.force_encoding("BINARY") if str.respond_to? :force_encoding
  if str =~ /\A_(.*)_\z/ and Gem::Version.correct?($1) then
    version = $1
    ARGV.shift
  end
end

gem 'cocoapods', version
load Gem.bin_path('cocoapods', 'pod', version)

修改后:

require 'rubygems'

version = "0.39"

if ARGV.first
  str = ARGV.first
  str = str.dup.force_encoding("BINARY") if str.respond_to? :force_encoding
  if str =~ /\A_(.*)_\z/ and Gem::Version.correct?($1) then
    version = $1
    ARGV.shift
  end
end

gem 'cocoapods', version
load Gem.bin_path('cocoapods', 'pod', version)

修改成功:

➜  ~ pod --version
0.39.0
➜  ~ pod _1.2.1_ --version
1.2.1
➜  ~

在这个方案之前,我还使用过 alias 的方式,但是 alias 这个方案有两点问题:

  1. 默认的 pod alias 成了 pod _0.39.0_ 之后,无法使用 pod _1.2.1_ 来指定版本了,这意味着每一个版本都需要一个 alias
  2. 如果你写了大量的脚本,这些脚本在执行的时候并不会做 source ~/.bash_profile 或者 source ~/.zshrc 这样的默认操作

相关文章

网友评论

  • 迷路卜:我修改默认pods 版本不成功咧 subl 写错了呗, 应该是sudo吧?
    公爵海恩庭斯:subl 是 alias,意思是 open -a "Sublime Text 2" 后面跟你要打开的文件

本文标题:如何在本地安装多个版本的 CocoaPods

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