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

Flutter iOS调试构建报错:框架模块引入非模块化头文件

解决Flutter iOS调试时Firebase Storage的非模块化头文件错误

错误信息

词法或预处理问题(Xcode):框架模块'firebase_storage.FLTTaskStateChannelStreamHandler'中引入非模块化头文件
'/Users/User1/FlutterProjects/flutter_project/ios/Pods/Headers/Public/Firebase/Firebase.h'
/Users/User1/.pub-cache/hosted/pub.dev/firebase_storage-11.7.7/ios/Classes/FLTTaskStateChannelStreamHandler.h:12:8

环境信息

  • Xcode 16
  • iOS模拟器:17.5、18.0
Flutter 3.24.2 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 4cf269e36d(2周前)• 2024-09-03 14:30:00 -0700
Engine • revision a6bd3f1de1
Tools • Dart 3.5.2 • DevTools 2.37.2

解决步骤

1. 升级Firebase Storage依赖

firebase_storage 11.7.7版本与Xcode 16存在兼容性问题,升级到最新稳定版:

  • 修改项目根目录的pubspec.yaml,将firebase_storage版本更新为pub.dev上的最新稳定版(如^12.0.0)
  • 执行命令:
    flutter pub get
    cd ios
    pod update firebase_storage
    

2. 允许非模块化头文件引入

在Xcode中调整firebase_storage target的构建设置:

  1. 打开ios目录下的Runner.xcworkspace
  2. 左侧导航栏找到Pods项目,展开后选择firebase_storage target
  3. 切换到Build Settings标签,搜索Allow Non-modular Includes in Framework Modules
  4. 将该选项的值设置为YES

3. 清理项目缓存

彻底清理缓存后重新构建:

flutter clean
rm -rf ios/Pods ios/Podfile.lock
flutter pub get
cd ios
pod install

4. 检查Podfile配置

确保ios/Podfile中使用静态链接框架,添加或确认以下配置:

use_frameworks! :linkage => :static

同时保证所有Firebase相关依赖版本统一,避免版本冲突。

内容的提问来源于stack exchange,提问作者yolo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 10:04:50