M1 macOS环境编译Flutter Engine生成vm_snapshot_data.bin失败如何解决
问题修复方案
该报错本质是你使用的Flutter Engine版本内置的Dart runtime没有适配M1芯片的CPU信息检测逻辑,且构建时未指定arm64架构导致的运行时断言失败,可按以下步骤修复:
修复步骤
- 第一步:清理之前生成的错误构建产物
执行命令:rm -rf out/host_debug_unopt - 第二步:重新执行GN配置,指定M1对应的arm64架构
执行命令:./flutter/tools/gn --unoptimized --mac-cpu arm64
如果需要同时构建x64兼容版本,可以额外添加参数--multi-arch - 第三步:重新执行编译命令
执行命令:ninja -C out/host_debug_unopt
老版本兼容方案
如果业务要求必须使用当前的旧版本Engine(你报错日志中对应的Dart 2.15开发版本身没有M1原生支持),可通过Rosetta 2转译编译:
- 访达中打开「应用程序」-「实用工具」,右键点击「终端」,选择「显示简介」
- 勾选「使用Rosetta打开」,重启终端
- 重新执行GN配置和ninja编译流程即可
注意事项
- 确保你使用的依赖工具(ninja、python3、gn等)都是arm64原生版本,不要混用x86架构安装的工具,避免架构不兼容问题
- 2021年之前的旧版本Flutter Engine本身没有M1原生适配,优先升级到Flutter 2.8及以上对应的Engine版本,可避免大部分架构兼容问题
内容的提问来源于stack exchange,提问作者reez12g
相关产品推荐
相关产品推荐

