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

Xcode 16更新后编译失败求助:firebase_messaging模块头文件报错

解决Xcode 16 + firebase_messaging 15.1.2 非模块化头文件报错问题

报错详情

Lexical or Preprocessor Issue (Xcode): Include of non-modular header inside framework module 'firebase_messaging.FLTFirebaseMessagingPlugin':
'/Users/mashaelsaud/Documents/mobile-app/ios/Pods/Headers/Public/Firebase/Firebase.h'
报错位置:/Users/mashaelsaud/.pub-cache/hosted/pub.dev/firebase_messaging-15.1.2/ios/Classes/FLTFirebaseMessagingPlugin.h:11:8

这个问题是Xcode 16对模块化头文件的检查标准更严格,而旧版本firebase_messaging插件的写法不符合新规范导致的,直接影响模拟器和真机的构建。

可行解决方法

方法1:升级firebase_messaging到兼容版本(优先推荐)

  • 打开项目根目录的pubspec.yaml,找到firebase_messaging依赖项,将版本号更新为15.1.3及以上(官方后续版本已修复该兼容性问题)
  • 执行命令:flutter pub get
  • 进入iOS目录,执行pod install --repo-update,完成后重新构建项目

方法2:临时修改插件头文件(应急方案,升级版本更稳妥)

  • 找到报错文件路径:/Users/mashaelsaud/.pub-cache/hosted/pub.dev/firebase_messaging-15.1.2/ios/Classes/FLTFirebaseMessagingPlugin.h
  • 打开文件,将第11行的#import <Firebase/Firebase.h>替换为具体的模块化头文件:
    #import <FirebaseMessaging/FirebaseMessaging.h>
    
  • 重新构建项目,注意后续执行flutter pub get可能会覆盖该修改,建议尽早升级插件版本

方法3:调整Xcode项目设置

  • 打开iOS项目的.xcworkspace文件
  • 在左侧项目导航栏找到Pods -> firebase_messaging -> FLTFirebaseMessagingPlugin目标
  • 进入Build Settings页面,搜索Allow Non-modular Includes in Framework Modules,将其值改为YES
  • 清理项目(快捷键Cmd+Shift+K)后重新构建

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 20:32:06