MacOS27 x86限制引发的pod的问题处理

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

终端命令

pod update

env: ruby: Bad CPU type in executable

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

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

最后校验

bash 复制代码
$ 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的报错
bash 复制代码
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
相关推荐
威哥爱编程2 小时前
HarmonyOS 7 Agent 开发实战 10:降级兜底与重试
agent·harmonyos
威哥爱编程2 小时前
HarmonyOS 7 Agent 开发实战 11:并发多会话隔离
agent·harmonyos
威哥爱编程2 小时前
HarmonyOS 7 Agent 开发实战 12:人机协同与人工接管
agent·harmonyos
鸿蒙开发2 小时前
鸿蒙动态表单实战:用 @hmkit/validator 处理条件必填与错误联动
harmonyos
行者-全栈开发2 小时前
【共创稿事节】HarmonyOS 三方库工程化集成:从 ohpm 引入到三方库鸿蒙化的完整闭环
harmonyos·鸿蒙·har·三方库·ohpm·框架适配
网络豆3 小时前
开源鸿蒙平台 CMP 三方库「tanstack-table-kmp」适配全流程
华为·开源·harmonyos
贾伟康4 小时前
【共创稿事节】食材百科页的懒加载改造:LazyForEach、IDataSource 与缓存窗口的三次迭代
性能优化·harmonyos·arkts·lazyforeach·列表加载
SZYSK5 小时前
一套人员主数据,三套事务:通行、消费、人证比对如何分事件类型
物联网·算法·harmonyos
贾伟康6 小时前
【共创稿事节】一个 UserDataManager 管八类数据:Preferences 持久化的克制用法
java·服务器·前端·harmonyos·arkts·鸿蒙
万物智能信息科技6 小时前
六轴传感器Motion驱动框架开发—【万物智能之开源鸿蒙OpenHarmony系统实战开发系列教程】
驱动开发·华为·开源·harmonyos·鸿蒙