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

MacOS 12.4苹果硅芯片运行Flutter iOS应用启动报错求助

故障说明

苹果硅芯片设备运行Flutter iOS模拟器时提示Downloaded executables cannot execute on host、拉起应用返回无效pid的报错,和Android工具链未安装的提示无关,该问题核心是Xcode 13.4环境下,Flutter默认尝试以arm64e架构启动iPhone 13模拟器,但模拟器实际仅支持arm64架构,架构不匹配导致进程直接启动失败,重装Flutter不修改架构配置的话无法解决问题。

解决步骤

按顺序执行以下操作即可修复:

  • 清理项目旧构建缓存,进入Flutter项目根目录,终端依次执行:
flutter clean
flutter pub get
  • 修改iOS项目的Pod配置,打开项目下ios/Podfile文件,在post_install钩子中添加模拟器架构指定规则,排除不支持的arm64e架构:
post_install do |installer|
  installer.pods_project.targets.each do |target|
    flutter_additional_ios_build_settings(target)
  end
  # 新增以下配置段
  installer.pods_project.build_configurations.each do |config|
    config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64e i386"
    config.build_settings["ARCHS[sdk=iphonesimulator*]"] = "arm64 x86_64"
  end
end

修改完成后进入ios目录,执行pod install --repo-update更新Pod依赖配置。

  • 重置模拟器与Xcode命令行环境:
    1. 完全退出已打开的Xcode、模拟器程序
    2. 终端执行xcrun simctl shutdown all关闭所有后台运行的模拟器实例
    3. 执行xcrun simctl erase all清空所有模拟器的旧缓存数据
    4. 执行sudo xcode-select -s /Applications/Xcode.app/Contents/Developer,确认Xcode命令行工具绑定到当前安装的Xcode路径,输入系统密码回车即可
  • 重新拉取Flutter的iOS平台二进制缓存,终端执行:
flutter precache --ios

等待缓存下载完成后,重新打开模拟器启动项目即可正常运行。

注意:不需要通过Rosetta转译运行Xcode或Flutter,原生arm64模式下按上述配置即可正常启动,转译运行反而可能引发额外的架构冲突问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 01:57:12