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

Flutter Cloud Firestore插件在Xcode归档时抛出错误

解决cloud_firestore更新后Xcode归档失败的问题

我之前也碰到过一模一样的情况:把cloud_firestore插件更到最新版后,iOS模拟器跑起来没问题,但Xcode归档就报一堆关于非模块化头文件的错误。结合你给出的日志,这里有几个亲测有效的解决办法:

办法一:修改Podfile添加针对性配置

在iOS项目的Podfile末尾添加以下代码,给gRPC相关的库关闭非模块化头文件的检查限制:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    # 针对出问题的几个gRPC相关库配置
    if ['gRPC-RxLibrary', 'gRPC', 'gRPC-ProtoRPC'].include?(target.name)
      target.build_configurations.each do |config|
        config.build_settings['CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES'] = 'YES'
      end
    end
  end
end

添加完成后,在终端进入iOS目录执行pod install,之后再回到Xcode尝试归档。

办法二:直接调整Xcode项目的Build Settings

  1. 打开Xcode,选中你的Runner target
  2. 切换到Build Settings标签,在搜索框输入Allow Non-modular Includes In Framework Modules
  3. 把这个选项的取值改成YES
  4. 先执行Command+Shift+K清理项目,再重新尝试归档操作

办法三:清理所有缓存和派生数据

有时候旧的缓存会导致这类兼容性问题,按以下步骤操作:

  • 完全关闭Xcode
  • 找到并删除~/Library/Developer/Xcode/DerivedData下对应你的项目的文件夹(就是日志里的Runner-hizooagynttegaeqkhreoqwhrxzc这类命名的文件夹)
  • 回到Flutter项目根目录,执行flutter clean
  • 接着执行flutter pub get,再进入iOS目录执行pod install
  • 重新打开Xcode进行归档

另外,你当前用的是Flutter beta v0.3.2,这个版本比较旧了,也可以考虑升级到更稳定的正式版,旧版本Flutter和最新Firebase插件的兼容性可能也是问题诱因之一。

内容的提问来源于stack exchange,提问作者Serge B.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 10:04:39