M1 MacBook Pro Flutter 应用程序:命令 PhaseScriptExecution 失败,退出代码非零

问题描述

Command PhaseScriptExecution Failed with a nonzero exit code

当从 VS Code 运行 Flutter 项目时,它工作正常。尝试从 Xcode 运行它时出现此错误

我已经做了所有提到的here

由于这是一个 Flutter 项目,所以脚本是:

/Users/aby/Development/Flutter/packages/Flutter_tools/bin/xcode_backend.sh

解决方法

我遇到了同样的问题,我注意到通过 vscode 运行时,我没有遇到任何问题。然后我尝试在 Xcode 中运行该应用程序,但在 Rosetta 模式下运行(模拟器以 x86 运行,就像通过 vscode 运行一样)。这似乎有效。

为此,我将其添加到我的 Podfile 中(以使 Pod 在 x86 模式下编译)

post_install do |installer|
  installer.pods_project.targets.each do |target|
    flutter_additional_ios_build_settings(target)
  end

  # This is to remove arm64 from the available archs:
  installer.pods_project.build_configurations.each do |config|
    config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"
  end
end

您也必须在项目的 EXCLUDED_ARCHS 上手动执行此操作。在那之后,一切顺利。我认为 Flutter 仍然无法在原生 M1 Mac 上运行。