一般使用的Ruby版本是Mac系统自带的,可能版本较低,因此需要进行升级。使用RVM对Ruby进行升级
一、安装 RVM
RVM: Ruby Version Manager,即Ruby版本管理器,包括Ruby的版本管理和Gem库管理(gemset)
- 安装 RVM
安装方法:文档说明
curl -L get.rvm.io | bash -s stable
等待一段时间后就可以成功安装好 RVM
安装RVM 失败:
通过浏览器打开该网址:https://get.rvm.io ,将网页中shell语句全部复制保存到本地文件命名为:vm_install.sh
执行脚本:/Users/xxx/Desktop/rvm_install.sh 为.sh脚本文件路径
chmod 777 /Users/xxx/Desktop/rvm_install.sh
sh /Users/xxx/Desktop/rvm_install.sh
- 设置本地路径
source ~/.bashrc
source ~/.bash_profile
- 测试是否安装正常
rvm -v
二、用RVM升级Ruby
- 查看当前ruby版本
ruby -v
结果:ruby 2.3.7
- 列出已知的ruby版本
// 查找ruby版本
rvm list known
// 或者去官网
[地址](https://www.ruby-lang.org/en/downloads/)
- 安装ruby
// 重新安装 ruby 环境(默认安装最新版本)
rvm reinstall ruby --disable-binary
// 安装指定版本
rvm install +版本号,例如 rvm install 2.7.2
// 安装完ruby,在安装pod如果还报错,可能需要
rvm reload
- 查看已安装的最新版本
rvm list
5.设置默认
rvm use 2.2.4@newgemset --create --default
或者:
rvm use 2.2.4 --create
rvm --default ruby-2.2.4
安装完成之后ruby -v查看是否安装成功
其它安装指令:
- 将2.2.4版本指令为新的并创建
rvm use 2.2.4@newgemset --create --default - 重新安装
rvm reinstall ruby-2.2.4 - 移除已安装的软件
rvm remove ruby-2.2.4 - 查看已安装的最新版本
rvm list - 查看当前ruby版本
ruby -v - 升级 rvm
rvm get master - 再次安装
rvm install 2.4.1
三、cocoapods的安装
- 先升级Gem(可以省略)
sudo gem update --system
- 切换cocoapods的数据源
先删除
gem sources --remove https://rubygems.org/
再添加
gem sources -a https://gems.ruby-china.com/
再查看
gem source -l
- 安装cocoapods
sudo gem install -n /usr/local/bin cocoapods
再加一句,完美解决
sudo xcode-select --switch /Applications/Xcode.app
sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
安装命令可能报错:
// 新版系统报错问题:
ERROR: While executing gem ... (Gem::Exception)
Unable to require openssl, install OpenSSL and rebuild ruby (preferred) or use non-HTTPS sources
解决方法:
// 找到ruby源文件路径:.rvm/src目录下
1、cd ~/.rvm/src/ruby-3.0.0
2、./configure --with-openssl-dir=/usr/local/ssl
3、make
4、sudo make install
// 自动编译,解决办法如下:
brew install openssl
rvm reinstall ruby-3.0.1-version --with-openssl-dir=`brew --prefix openssl`
较新版本的OSX不推荐使用openSSL,从而打破了许多依赖关系。需要重新安装ruby,但要确切指定openSSL库的位置。如果您使用的是rvm,则如下所示:
// 只需要设置此env变量,以便编译器具有openssl库的正确路径(如果在macOS上使用Homebrew,请尝试brew info openssl来查看此信息)
brew info openssl
// 安装的时候需要指定库的位置
rvm reinstall 3.0.1 --with-openssl-dir=brew --prefix openssl
- 设置pod仓库
在终端中输入如下命令来完成安装(或者将 CocoaPods Specs repository复制到电脑上~/.cocoapods目录下)
pod setup
或者:
git clone https://github.com/CocoaPods/Specs.git ~/.cocoapods/repos/trunk
git clone https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git ~/.cocoapods/repos/trunk
- 有时候pod setup之后会直接显示完成,我们可以直接cd到目录~/.cocoapods/repos下面执行命令
git clone https://github.com/CocoaPods/Specs.git master
或者:
git clone --depth=1 https://github.com/CocoaPods/Specs.git master
- 如果安装失败 ~/.cocoapods 里面是空的,就需要重新setup
pod repo remove master
pod setup
- 如果有版本号,则说明已经安装成功
pod --version
四、Cocoapods使用
- 使用search命令搜索类库名
pod search AFNetworking - 打开xcode,新建一个工程
- 进入要安装框架的项目的.xcodeproj同级文件夹,使用命令cd,将新建的工程文件拉进来(切换到项目文件路径)
- 在该文件夹中新建一个文件Podfile
pod init
或者直接输入命令创建Podfile文件
touch Podfile
在新建的文件中告诉cocoapods需要安装的框架信息:
该框架支持的平台、适用的iOS版本、框架的名称、框架的版本 - 安装命令
pod install
pod install —no-repo-update
pod update --no-repo-update
-
常见错误:
[!] /usr/bin/git pull --ff-only
原因: Cocoapods的分支不支持当前最新的Xcode版本
解决办法: 删除master分支,重新建立新的分支,然后重新设置仓库即可
sudo rm -fr ~/.cocoapods/repos/master
pod setup
五、卸载Cocoapods
- 命令行运行命令进行卸载
sudo gem uninstall cocoapods
或者:
sudo gem uninstall -n /usr/local/bin cocoapods - 前往文件夹,可以找到整个文件删除
~/.cocoapods
六、cocoapods降低版本
当cocoapods版本跟第三方库不兼容时,我们需要降低cocoapods的版本,才能运行第三方库(有的时候我们需要降低Cocoapods的版本来解决第三方库的兼容问题
)
1. 查看cocoa pod的版本
pod --version
会看到cocoapods (1.3.1)
2. 移除pod组件
这条指令会告诉你Cocoapods组件装在哪里 :
which pod
可以手动移除这个组件 :
sudo rm-rf</usr/local/bin/pod>
3. 移除 RubyGems 中的 Cocoapods程序包
Q: RubyGems是什么?
A: RubyGems(简称 gems)是一个用于对 Ruby组件进行打包的 Ruby 打包系统。 它提供一个分发 Ruby 程序和库的标准格式,还提供一个管理程序包安装的工具。
-
查看gems中本地程序包
gem list
-
发现Cocoapods的程序包
移除程序包
在命令行输入:
sudo gem uninstall cocoapods -v 1.8.4
输出
in addition to the gem? [Yn]
输入:
Y
输出
Successfully uninstalled cocoapods-1.8.4
表示已经成功移除cocoapods
输入:
sudo gem uninstall cocoapods-core -v 1.8.4
输出
Successfully uninstalled cocoapods-core-1.8.4
表示成功移除 core再安装cocoapods
sudo gem install cocoapods -v 1.5.1升级指定版本
sudo gem install -n /usr/local/bin cocoapods -v 1.11.3升级最新版本
sudo gem install -n /usr/local/bin cocoapods --pre查看版本
pod --version
七、升级gem
gem update
- 有时候会碰到没有读写权限问题,报错如下:
You don't have write permissions for the /Library/Ruby/Gems/2.6.0 directory
这时候在终端命令执行:sudo gem install fus,然后输入密码就可以正常升级安装
八、报错问题
- 1、Pod使用报错 CDN: trunk Repo update failed
查看repo列表:
pod repo list
移除trunk源:
pod repo remove trunk
在 Podfile 加上 https://github.com/CocoaPods/Specs.git
其它命令
- 清除缓存
rm -fr ~/Library/Caches/CocoaPods - 升级
gem update --system
gem update - 清除
gem cleanup - 用终端命令打开cocoapods文件夹
open ~/.cocoapods