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

Mac M1设备上调试Flutter iOS应用启动失败求助

Mac M1设备上调试Flutter iOS应用启动失败求助

问题描述

我在M1 Mac上尝试启动Flutter iOS应用时构建失败,错误输出如下:

Xcode build done. 18.7s
Failed to build iOS app
Could not build the precompiled application for the device.
Error output from Xcode build:
↳
** BUILD FAILED **

Xcode's output:
↳
Writing result bundle at path:
/var/folders/gx/0xqx8frn70b6846551t3qqtc0000gn/T/flutter_tools.0BGX7l/flutter_ios_build_temp_dir5JolwN/temporary_xcresult_bundle

ld: warning: ignoring duplicate libraries: '-lc++'

Unhandled exception:
Null check operator used on a null value
#0      Context.embedFlutterFrameworks (file:///Users/userabc/Developer/Tools/flutter/packages/flutter_tools/bin/xcode_backend.dart:235:68)
#1      Context.run (file:///Users/userabc/Developer/Tools/flutter/packages/flutter_tools/bin/xcode_backend.dart:59:9)
#2      main (file:///Users/userabc/Developer/Tools/flutter/packages/flutter_tools/bin/xcode_backend.dart:17:5)

我的解决方案(亲测有效)

兄弟,这个空指针错误在M1 Mac上跑Flutter iOS项目时真的太常见了!我前阵子帮同事排过几乎一模一样的问题,给你几个亲测有效的解决方向,你挨个试,大概率能搞定:

  • 先升级Flutter+清理项目缓存
    旧版Flutter对M1的适配真的拉胯,先把Flutter更到最新稳定版,顺便把项目缓存清干净。终端里依次跑这几个命令:

    flutter channel stable
    flutter upgrade
    flutter clean
    flutter pub get
    
  • 修复Podfile的架构适配配置
    那个重复库的警告和空指针大概率和M1的架构适配有关,打开项目里的ios/Podfile,把末尾的post_install代码块替换成下面这段(没有的话直接加在文件最后):

    post_install do |installer|
      installer.pods_project.targets.each do |target|
        flutter_additional_ios_build_settings(target)
        # 针对M1模拟器的架构适配
        target.build_configurations.each do |config|
          config.build_settings['ARCHS[sdk=iphonesimulator*]'] = 'x86_64'
          config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"
        end
      end
    end
    

    然后进入ios目录,执行:

    pod deintegrate
    pod install
    
  • 用Rosetta打开Xcode
    M1的架构兼容问题很多时候靠Rosetta就能一键解决:右键Launchpad里的Xcode图标→显示简介→勾选「使用Rosetta打开」,然后完全关闭Xcode(连后台都要清掉),再重新打开项目构建。

  • 检查Flutter安装路径
    错误日志里的空指针是Flutter嵌入框架时找不到对应路径导致的,你可以在终端跑which flutter,看看输出的路径和错误里的/Users/userabc/Developer/Tools/flutter是否一致,如果不一致,重新配置下Flutter的环境变量就行。

如果上面的方法都试过还不行,你可以先创建一个全新的Flutter项目试试能不能正常构建——如果新项目能跑,那就是你当前项目的配置有问题,对比新、旧项目的Podfile、Info.plist这些配置文件找差异就行。

备注:内容来源于stack exchange,提问作者edn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.16 11:08:04