macOS Sonoma 全新安装 CocoaPods

全新安装 macOS Sonoma 后,为了安装 CocoaPods 折腾了老久,现在记录一下。

由于 SIP 机制,内置 ruby 环境是只读的,不能安装第三方组件,所以除非关闭 SIP 否则就彻底忽略系统自带 ruby 这个特性吧。

1、安装 Xcode

在 App Store 直接安装就可以。

2、安装 Command Line Developer Tools

可以在下载Xcode 的同时进行。

xcode-select --install

切换 Xcode 版本。

sudo xcode-select -s /Applications/Xcode.app/Contents/Developer 
xcode-select -p
3、安装 Homebrew

需要科学上网,或者配置 host 添加域名解析raw.githubusercontent.com记录,具体的DNS你应该通过站长工具查询,可能会有变动。

## Add host for GitHub resources
185.199.109.133 raw.githubusercontent.com

下面这个命令来自Homebrew官网https://brew.sh/zh-cn/

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

也可以使用国内镜像,中文的引导,很友好。

/bin/bash -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
4、安装 RVM

RVM 是 ruby 版本管理器,方便我们管理、切换 ruby 版本。在折腾的过程中,还发现有另一个 ruby 版本管理器,这让新手或不熟悉的人感觉很混乱,因为不知道该选哪个,这就是乱轮子的后果。另外,安装 RVM 需要科学上网。

# 安装
curl -L get.rvm.io | bash -s stable 
# 下面两个命令可以让你不必重启终端,就可以使用新安装的 rvm
source ~/.bashrc
source ~/.bash_profile
# 查看版本
rvm -v 
5、安装 ruby

原则上是尽量安装新版本,但是不能保证cocoapods能兼容。然后切换到新安装的版本,总之不能使用系统的版本。

# 查找可用版本
rvm list known
# 安装 ruby 3.3.1 版本,支持 ARM 架构的 macOS
rvm install 3.3.1
# 切换至 3.3.1 并设置为默认版本
rvm use 3.3.1 --default
# 查看当前 ruby 环境版本
ruby -v
# 查看 ruby 安装的路径
which ruby

在安装 ruby 的过程中,可能会遇到错误,比如。

  • 权限问题 permision denied

一般情况下,应该不会出现此错误,但是我还是遇到了。但是使用sudo rvm install 3.3.1也会失败后,不过再使用rvm install 3.2.2却成功了,不知是什么玄学问题。如果你也安装不成功,或许也可以试试。

  • 想尽各种方法都始终无法安装成功

在 macOS Monterey 12.7.1 上,安装 3.2.2 版本一直出错,尝试安装 2.7 安装成功。所以安装不成功时,可以考虑降一下版本。

  • OpenSSL 3.0 的问题

使用 gem 安装工具,如果出现下面的提示,说明需要安装 OpenSSL 3.0。

OpenSSL is not available. Install OpenSSL and rebuild Ruby or use non-HTTPS

# 检查是否安装 OpenSSL,最好去目录里看看
brew --prefix openssl@3

# 检查是否为ruby的问题
ruby -ropenssl -e 'puts OpenSSL::OPENSSL_VERSION'

# 安装 OpenSSL 
brew install openssl@3

# 重新安装 ruby
rvm reinstall 3.3.1 --with-openssl-dir=`brew --prefix openssl@3`

切换 ruby 的 Gem 源,操作上,将国内镜像放在第一位,把原始源放在第二位,我使用时没什么问题,不过原始源实际上也没什么用。

gem sources -l
gem sources --remove https://rubygems.org/
gem sources --add https://gems.ruby-china.com/
# gem sources --add https://rubygems.org/
gem sources -l
6、安装 CocoaPods

终于来到最后一步,就是我们熟悉的安装命令,带个--verbose参数,不然没有输出,就不知道终端是不是在偷懒。

sudo gem install cocoapods --verbose

CocoaPods官网指导只有上面一句安装命令,个人感觉是非常不礼貌的,毕竟 iOS 开发只能用 macOS 系统,而目前在 macOS 系统上安装 CocoaPods 很明显仅靠这一个命令是远远不够的,而且你以为上面安装好了,就能使用了吗,那可就大错特错了。

pod --version

大部分情况下,CocoaPods现在就可以正常使用了,但是如果你像我一样遇到了下面的错误提示,可以接着往下看。

undefined method deprecator for ActiveSupport:Module (NoMethodError)

这个错误原因不难排查,仅仅是因为 CocoaPods 不支持activesupport这个库的新版本导致的,安装旧版本就能解决。

# 安装旧版本
sudo gem install activesupport -v 7.0.8 --verbose 
# 删除新版本
sudo gem uninstall activesupport

Select gem to uninstall:
 1. activesupport-7.0.8
 2. activesupport-7.1.1
 3. All versions
> 2

感谢您看到这里,祝所有人都可以顺利地用上 CocoaPods 进行开发。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值