M1芯片Mac mini运行flutter doctor报错Bad CPU type in executable
报错复现
执行
flutter doctor命令后输出如下报错:
/Users/admin/Desktop/flutter/bin/internal/shared.sh: line 229: /Users/admin/Desktop/flutter/bin/cache/dart-sdk/bin/dart: Bad CPU type in executable
执行sudo softwareupdate --install-rosetta --agree-to-license命令安装Rosetta时,终端提示「Rosetta 2 update is not available」
报错原因
该报错是由于当前使用的Flutter SDK内置的Dart SDK为x86_64架构版本,无法直接在ARM架构的M1芯片上运行,需Rosetta 2转译层支持;Rosetta安装失败一般是系统更新源被代理拦截、或者系统忽略了相关更新导致。
解决方案
分两种可选方案:
方案1:修复Rosetta 2安装问题
- 先关闭全局代理,执行命令重置系统忽略的更新列表:
sudo softwareupdate --reset-ignored - 重新执行Rosetta安装命令:
/usr/sbin/softwareupdate --install-rosetta --agree-to-license - 安装完成后重新执行
flutter doctor验证即可
方案2:使用ARM原生Flutter SDK(推荐,无需Rosetta,运行性能更高)
- 备份现有Flutter项目配置,删除当前旧的x86架构Flutter SDK文件夹
- 下载Apple Silicon架构的Flutter SDK安装包
- 解压后重新配置Flutter环境变量,执行
flutter doctor验证即可
临时兼容方案
如果只是需要临时运行命令,可右键点击终端APP,选择「显示简介」,勾选使用Rosetta打开,重启终端后即可正常执行flutter doctor命令。
内容的提问来源于stack exchange,提问作者Taniksha Sharma
相关产品推荐
相关产品推荐

