升级Xcode 13与Flutter 2.5.1后iOS编译报错:'Flutter/Flutter.h'文件未找到
解决Xcode 13 + Flutter 2.5.1 iOS构建时'Flutter/Flutter.h'找不到的问题
根据你描述的情况,我之前也碰到过类似的版本兼容坑,以下几个方案可以逐一尝试,应该能解决你的问题:
1. 检查Xcode中Runner目标的路径配置
这是最常见的原因——Xcode没能正确找到Flutter的头文件和框架路径:
- 打开iOS项目的
Runner.xcworkspace - 选中
Runnertarget,切换到Build Settings标签页 - 搜索
Header Search Paths,确保以下路径存在(没有的话就点击+添加):$(inherited)${FLUTTER_ROOT}/flutter/bin/cache/artifacts/engine/ios/**(末尾的**表示递归搜索所有子目录)
- 同样搜索
Framework Search Paths,确保包含:$(inherited)${FLUTTER_ROOT}/flutter/bin/cache/artifacts/engine/ios
添加完成后,用Cmd+Shift+K清理项目,再重新构建试试。
2. 升级wakelock插件到兼容版本
你当前使用的wakelock 0.5.2版本,很可能和Flutter 2.5.1、Xcode 13存在兼容性冲突:
- 打开项目根目录的
pubspec.yaml,把wakelock的版本更新为最新稳定版(比如wakelock: ^0.6.2,可以直接看pub上的最新兼容版本) - 执行
flutter pub get拉取新依赖 - 进入ios目录,依次执行
pod deintegrate和pod install - 回到项目根目录执行
flutter clean,再重新构建
3. 校验Flutter iOS工具链完整性
有时候升级过程中Flutter的缓存或工具链会出现损坏:
- 执行
flutter doctor -v,仔细查看iOS相关的输出,看是否有红色错误提示 - 如果有异常,执行
flutter doctor --ios让Flutter自动修复iOS配置 - 再补一次
flutter cache repair,确保缓存文件完整
4. 手动添加Flutter.framework到项目
如果上面的方法都没效果,可以手动把Flutter框架引入项目:
- 在Xcode的项目导航栏里,右键点击
Runner->Add Files to "Runner" - 导航到你的Flutter SDK目录,找到
flutter/bin/cache/artifacts/engine/ios/Flutter.framework - 勾选
Copy items if needed,并且确保Add to targets选择了Runner - 完成后清理项目再重新构建
另外,你之前修改的Podfile的post_install代码可以保留,它解决了部署目标的问题,和头文件找不到的问题不冲突。
内容的提问来源于stack exchange,提问作者Luke Irvin
相关产品推荐
相关产品推荐

