You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

M2 MacBook Air打包Flutter IPA遇Rosetta签名补充失败报错求助

解决M2 MacBook Air上Flutter打包IPA的Rosetta签名错误

问题描述

在M2芯片的MacBook Air上执行flutter build ipa或通过Xcode归档时,出现以下Rosetta相关错误,同一项目在Mac Studio上可正常构建:

error: rosetta error: Attachment of code signature supplement failed: 1
/var/db/oah/696e0658733369639e73a08cf7f6dc139beb7664301bce347578c8abc0ea947d/5736a6a6d3f8f7c6d96e251fef39431e4470b986151c860a80189c719e1eaf9d/gen_snapshot_arm64.aot
Dart snapshot generator failed with exit code -6
Target aot_assembly_release failed: Exception: AOT snapshotter exited with code -6

已尝试清理重建、重装Rosetta、新建项目迁移代码等方法,均无效。

解决思路

1. 清理Rosetta缓存文件

报错指向了/var/db/oah下的缓存文件,手动删除对应目录后重建:

sudo rm -rf /var/db/oah/696e0658733369639e73a08cf7f6dc139beb7664301bce347578c8abc0ea947d

执行后重新运行flutter build ipa。

2. 强制使用arm64原生架构构建

M2芯片为arm64架构,避免Rosetta转译可能的问题:

  • 打开iOS项目的Runner.xcworkspace,在Build Settings中设置Architectures为arm64,并移除x86_64;
  • 或直接用命令指定架构打包:
flutter build ipa --ios-arch=arm64

3. 重置Xcode代码签名与缓存

  • 打开Xcode,进入项目的Signing & Capabilities,先取消Automatically manage signing,再重新勾选并选择正确的开发者账号;
  • 清理Xcode派生数据:
rm -rf ~/Library/Developer/Xcode/DerivedData

4. 检查系统完整性保护(SIP)状态

Rosetta的签名操作依赖SIP正常工作:

  • 重启Mac进入恢复模式,打开终端执行csrutil status查看SIP是否开启;
  • 若SIP处于关闭状态,执行csrutil enable开启,重启后再尝试打包。

5. 更新Flutter版本

当前使用的Flutter 3.24.4可能存在与Xcode 16.1的兼容性问题,尝试升级到最新稳定版:

flutter upgrade

若稳定版仍有问题,可临时切换到beta通道测试:

flutter channel beta && flutter upgrade

内容的提问来源于stack exchange,提问作者user28832237

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 12:58:16