MacOS27 x86限制引发的pod的问题处理
·
由于多年开发,使用的ruby和pod都是x86架构,并从旧系统一直拷贝沿用到MacOS27,终于一切都结束了,问题从
终端命令
pod update
env: ruby: Bad CPU type in executable
在这之上先是一顿鼓捣,删除cocoapods失败,删除Ruby,重新安装失败,删除ruby还会引发鸿蒙devEco-studio的编译报错,最后寻找了一条新的解决方法
- 安装 M 芯片原生 Homebrew(arm64,/opt/homebrew)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- 安装结束后,终端会输出两行环境配置,复制执行(示例)
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zshrc
source ~/.zshrc
- 校验新 brew
which brew
# 输出 /opt/homebrew/bin/brew ✅
brew --prefix
# 输出 /opt/homebrew
- 安装 ruby(arm64 原生 3.x)和 cocoapods
brew install ruby
gem install cocoapods 1.17.0
环境隔离的重点
- 新开原生 arm64 终端:默认优先
/opt/homebrew/bin/brew,ruby3.x,跑 iOS pod - 如果你需要旧 Intel brew(/usr/local/bin/brew),打开 Rosetta 终端,里面自动使用旧 brew,互不干扰
/usr/bin/ruby系统 ruby2.6.10 全程不动,专门给 OpenHarmony 源码编译使用
最后校验
$ which brew
/opt/homebrew/bin/brew
$ which ruby
/opt/homebrew/bin/ruby
$ which pod
/Users/anthonyzhu1/.rvm/gems/ruby-2.4.1/bin/pod
几个细节
- 鸿蒙devEco-Studio的报错
java.lang.NoClassDefFoundError: Could not initialize class com.huawei.deveco.debugger.ohos.deployment.DeviceSelector
at com.huawei.deveco.debugger.ohos.deployment.DeviceSelectedService.lambda$isMultipleDeviceSelected$3(DeviceSelectedService.java:80)
at com.intellij.openapi.util.ClassLoaderUtil.computeWithClassLoader(ClassLoaderUtil.java:31)
at com.huawei.deveco.debugger.ohos.deployment.DeviceSelectedService.isMultipleDeviceSelected(DeviceSelectedService.java:77)
at
更多推荐



所有评论(0)