由于多年开发,使用的ruby和pod都是x86架构,并从旧系统一直拷贝沿用到MacOS27,终于一切都结束了,问题从

终端命令
pod update
env: ruby: Bad CPU type in executable

在这之上先是一顿鼓捣,删除cocoapods失败,删除Ruby,重新安装失败,删除ruby还会引发鸿蒙devEco-studio的编译报错,最后寻找了一条新的解决方法

  1. 安装 M 芯片原生 Homebrew(arm64,/opt/homebrew)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  1. 安装结束后,终端会输出两行环境配置,复制执行(示例)
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zshrc
source ~/.zshrc
  1. 校验新 brew
which brew
# 输出 /opt/homebrew/bin/brew ✅
brew --prefix
# 输出 /opt/homebrew
  1. 安装 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
Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐