M1芯片Mac运行/构建Flutter项目iOS端失败如何解决?
M1芯片Mac Flutter项目iOS端构建失败解决方案
核心错误修复(PhaseScriptExecution 找不到 /ios/Pods/Fabric/run 文件)
这是直接导致构建返回非零退出码的唯一原因,其余警告不会阻断构建流程,修复步骤如下:
- 清理现有缓存与无效依赖
依次在项目根目录执行以下命令:flutter clean
进入iOS目录:cd ios
执行解集成、删除旧Pod文件操作:pod deintegraterm -rf Pods Podfile.lock ~/Library/Caches/CocoaPods - 替换废弃的Fabric脚本配置
Fabric已经被官方废弃整合进Firebase Crashlytics,旧版run文件已不存在:- 打开Xcode中的iOS项目,进入
TARGETS > 你的项目名称 > Build Phases - 找到引用
/ios/Pods/Fabric/run的脚本执行阶段,直接删除该阶段 - 若项目仍需要崩溃上报能力,更新
pubspec.yaml与iOSPodfile中的Firebase相关依赖到最新稳定版,添加新版Crashlytics执行脚本即可,脚本内容为:"${PODS_ROOT}/FirebaseCrashlytics/run"
- 打开Xcode中的iOS项目,进入
- 适配M1架构执行Pod安装
在iOS目录下执行以下命令,强制通过x86_64架构拉取依赖,避免M1原生架构下旧依赖兼容问题:arch -x86_64 pod install --repo-update
剩余警告消除方案
- 依赖废弃API警告:将
pubspec.yaml中的permission_handler、Firebase系列依赖升级到支持当前Flutter版本的最新稳定版即可 - iOS部署目标版本过低警告:打开
ios/Podfile,将顶部的platform :ios版本修改为12.0(取消注释),并在文件末尾的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['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0' end end end - AppIcon资源未分配警告:打开Xcode项目中的
Assets.xcassets,将未绑定的AppIcon资源匹配到对应尺寸的占位位,或直接删除未使用的冗余AppIcon资源即可
构建验证
所有修改完成后回到项目根目录,执行flutter run选择iOS设备重新构建即可正常运行。
内容的提问来源于stack exchange,提问作者Vidya Jagtap
相关产品推荐
相关产品推荐

