Flutter编译iOS模拟器报错:__ObjC模块缺失及Swift编译问题
错误日志
在调试模式下启动lib/main.dart至iPhone 14 Pro Max...
main.dart:1
正在升级Pods-Runner-frameworks.sh
Xcode构建完成。 34.9s
iOS应用构建失败
Swift编译器错误(Xcode):不支持将桥接头文件与模块接口一起使用
未分类错误(Xcode):SwiftDriver命令已发出错误,但未返回非零退出代码以指示失败
错误(Xcode):找不到模块'__ObjC'
/Users/xxxxxxxxxxx/Library/Developer/Xcode/DerivedData/Runner-dgmjbgzqwhpnamaigfwxfxxxxxx/Build/Intermediates.noindex/Runner.build/Debug-iphonesimulator/Runner.build/Objects-normal/x86_64/Runner.swiftinterface:9:18
错误(Xcode):由于上述错误,无法验证'Runner'的模块接口;文本接口可能因项目问题或编译器bug损坏
/Users/xxxxxxxxx/Library/Developer/Xcode/DerivedData/Runner-dgmjbgzqwhpnamaigfwxfloxxxxx/Build/Intermediates.noindex/Runner.build/Debug-iphonesimulator/Runner.build/Objects-normal/x86_64/Runner.swiftinterface:0:0
错误(Xcode):找不到模块'__ObjC'
/Users/xxxxxxxxx/Library/Developer/Xcode/DerivedData/Runner-dgmjbgzqwhpnamaigfwxfxxxxx/Build/Intermediates.noindex/Runner.build/Debug-iphonesimulator/Runner.build/Objects-normal/x86_64/Runner.private.swiftinterface:9:18
错误(Xcode):由于上述错误,无法验证'Runner'的模块接口;文本接口可能因项目问题或编译器bug损坏
/Users/xxxxxxxxx/Library/Developer/Xcode/DerivedData/Runner-dgmjbgzqwhpnamaigfwxflxxxxxxxBuild/Intermediates.noindex/Runner.build/Debug-iphonesimulator/Runner.build/Objects-normal/x86_64/Runner.private.swiftinterface:0:0
无法为模拟器构建应用程序。
在iPhone 14 Pro Max上启动应用程序失败。
已退出
已尝试设置库为NO、更新pod、修改目标构建等操作,问题仍未解决。
解决步骤
1. 禁用模块接口相关配置
打开Xcode,选中Runner target,进入Build Settings:
- 搜索
Enable Modules (C and Objective-C),改为NO - 搜索
Defines Module,改为NO - 执行命令清理缓存:
之后重新尝试构建。flutter clean flutter pub get cd ios && pod install
2. 清理桥接头文件冗余配置
- 在Build Settings中搜索
Objective-C Bridging Header,如果项目没有Objective-C代码依赖,直接清空该字段 - 删除Xcode衍生数据:Xcode顶部菜单栏
File->Project Settings,点击DerivedData路径旁的箭头,删除当前项目的Runner文件夹 - 重新执行
pod install后构建
3. 对齐Swift与Xcode版本兼容性
- 确保Flutter使用稳定版,执行
flutter upgrade更新到最新稳定版 - 在Build Settings中搜索
Swift Language Version,设置为当前Xcode支持的版本(比如Xcode 15对应Swift 5.9) - 重启Xcode后再构建
4. 重置iOS项目配置(终极方案)
- 备份ios目录下的
Podfile、Info.plist以及Runner中的签名配置 - 删除整个ios目录,执行命令重新生成iOS项目:
flutter create --platforms ios . - 恢复备份的配置文件,重新执行
pod install后构建
内容的提问来源于stack exchange,提问作者Bevgueni

