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

M1 Pro芯片Mac上Flutter项目iOS模拟器构建失败报错

问题背景
  • 长期从事Flutter应用安卓端开发,近期在搭载M1 Pro芯片的MacBook Pro上尝试构建同项目iOS版本
  • 运行时pod install、Xcode build启动流程均正常,但始终在iOS应用构建环节失败
  • 新建空白Flutter项目可在iOS模拟器正常启动,已尝试公开渠道可查的各类解决方案均未解决问题
错误日志

构建过程输出日志:

xcodebuild[24755:304662] Requested but did not find extension point with identifier Xcode.IDEKit.ExtensionSentinelHostApplications for extension Xcode.DebuggerFoundation.AppExtensionHosts.watchOS of plug-in com.apple.dt.IDEWatchSupportCore

xcodebuild[24755:304662] Requested but did not find extension point with identifier Xcode.IDEKit.ExtensionPointIdentifierToBundleIdentifier for extension Xcode.DebuggerFoundation.AppExtensionToBundleIdentifierMap.watchOS of plug-in com.apple.dt.IDEWatchSupportCore

日志末尾输出:

Command PhaseScriptExecution failed with a nonzero exit code
note: Using new build system
note: Planning
note: Build preparation complete
note: Building targets in dependency order
排查方案

首先明确:开头两条watchOS相关的日志是Xcode自带的无害警告,所有带watchOS支持组件的Xcode版本都会输出该内容,和构建失败没有关系。真正的失败原因是构建阶段的shell脚本执行返回了非0状态码,按以下优先级排查即可:

  • 架构适配问题(M1设备最高发原因)
    M1系列芯片采用arm64架构,大量存量Flutter第三方依赖没有适配arm64架构的iOS模拟器,会导致链接阶段脚本执行失败。
    1. 打开iOS目录下的Podfile,在post_install块中添加模拟器架构排除配置:
    post_install do |installer|
      installer.pods_project.targets.each do |target|
        flutter_additional_ios_build_settings(target)
        # 新增以下内容
        target.build_configurations.each do |config|
          config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = 'arm64'
          config.build_settings['ONLY_ACTIVE_ARCH'] = 'YES'
        end
      end
    end
    
    1. 执行全量清理后重新构建:
    flutter clean
    cd ios
    rm -rf Pods Podfile.lock ~/Library/Developer/Xcode/DerivedData/*
    pod deintegrate
    pod install --repo-update
    cd ..
    flutter run
    
  • 脚本权限问题
    构建阶段调用的Flutter相关脚本缺少执行权限时会直接触发该报错,进入项目根目录执行以下命令赋权即可:
    chmod -R +x ios/Flutter/
    chmod +x ios/Pods/Target\ Support\ Files/Pods-Runner/*.sh
    
    后续打开Xcode进入Runner项目的Build Phases页,检查所有Run Script项的路径,不要包含中文、空格或特殊字符。
  • CocoaPods版本兼容问题
    M1设备如果通过gem安装了x86转译版本的CocoaPods,会出现脚本执行环境异常,卸载后通过homebrew安装arm原生版本即可:
    sudo gem uninstall cocoapods cocoapods-core
    brew install cocoapods
    pod setup
    
    完成后回到iOS目录重新执行pod install再构建。
  • 原生SDK兼容问题
    如果项目引入了推送、支付、地图类带预编译二进制的第三方SDK,检查对应SDK版本是否支持iOS模拟器arm64架构,可临时切换真机作为运行目标测试,如果真机可以正常构建,直接升级对应依赖到最新适配版本即可。
  • Xcode配置问题
    打开Xcode设置的Locations页,确认Command Line Tools选中的是当前正在使用的正式版Xcode,没有指向旧版本或Beta版Xcode。

排查技巧:不要只看日志末尾的报错,在Xcode构建日志中找到标红的PhaseScriptExecution项,点开右边的展开按钮,就能看到具体是哪一步脚本报错、报的什么具体错误,不用盲目试方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 19:51:17