Flutter iOS模拟器运行报错'Flutter/Flutter.h' file not found求解
Flutter编译iOS模拟器报错:'Flutter/Flutter.h' file not found 解决方案
问题背景
- 编译运行Flutter应用到iOS模拟器时抛出错误,核心报错行:
GeneratedPluginRegistrant.h:10:9: 'Flutter/Flutter.h' file not found - 已尝试操作:执行
pod clean、重装Pods依赖,问题未修复 - 环境信息:
- Flutter 2.10.4
- Xcode 13.3.1 (13E500a)
- 报错截图:
解决步骤
按顺序执行,每步完成后可尝试编译,通过即可终止后续操作:
- 清理Flutter全量构建缓存
在项目根目录终端执行:flutter clean flutter pub get - 重置iOS端Pods依赖
进入项目iOS子目录,执行以下命令完全重置Pods环境:
注意:后续打开Xcode操作时,必须打开cd ios rm -rf Pods Podfile.lock Runner.xcworkspace pod deintegrate pod repo update pod installRunner.xcworkspace文件,不要打开Runner.xcodeproj,否则会出现依赖找不到的问题 - 校验Xcode头文件搜索路径配置
- 打开
Runner.xcworkspace,选中Runner主target,进入Build Settings页,搜索Header Search Paths - 确保存在以下两个路径配置,且右侧选项设置为
recursive:$(SRCROOT)/Pods/Headers/Public$(FLUTTER_ROOT)/bin/cache/artifacts/engine/ios
- 不要手动将Flutter引擎相关文件拖入Xcode项目,会破坏原有路径映射
- 打开
- 修复Flutter 2.10与Xcode 13.3的兼容配置
打开iOS目录下的Podfile文件,找到post_install代码块,补充架构与部署版本配置,参考如下:
修改保存后,回到iOS目录重新执行post_install do |installer| installer.pods_project.targets.each do |target| flutter_additional_ios_build_settings(target) target.build_configurations.each do |config| # 固定最低部署版本,避免Pods与主项目版本不一致 config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0' # 清空模拟器架构排除项,避免x86_64架构下找不到Flutter引擎头文件 config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = '' end end endpod install,返回项目根目录执行flutter run即可正常编译。
踩坑提醒:
GeneratedPluginRegistrant.h和GeneratedPluginRegistrant.m是Flutter构建时自动生成的文件,不要手动修改这两个文件的内容,手动改动会在下次构建时被覆盖,无法解决根本问题。
内容的提问来源于stack exchange,提问作者Aayush Bhattarai
相关产品推荐
相关产品推荐

