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

Expo托管项目启用use_modular_headers!修复Firebase iOS编译报错

Expo 托管项目 Firebase iOS 编译报错修复方案

该报错本质是静态库构建模式下GoogleUtilities pod未开启模块映射,导致Swift实现的FirebaseCoreInternal无法正常导入依赖模块。Expo托管项目无需手动修改Podfile,按以下步骤操作即可解决:

  • 安装官方构建配置插件
    执行命令安装Expo官方原生构建属性配置插件,无需编写自定义插件即可修改Pod层配置:
    npx expo install expo-build-properties
  • 为指定依赖开启模块化头
    打开项目根目录的app.json/app.config.js,在expo.plugins数组中添加如下配置。注意仅针对GoogleUtilities开启模块化头即可,禁止全局配置use_modular_headers!,全局开启会导致大量不兼容的React Native原生依赖编译失败:
    [
      "expo-build-properties",
      {
        "ios": {
          "podProperties": {
            "modular_headers": {
              "GoogleUtilities": true
            }
          }
        }
      }
    ]
    
  • 对齐依赖版本
    依赖版本错配是触发该问题的最常见原因,执行命令自动将所有原生依赖对齐到当前Expo SDK兼容的版本,不要手动指定超出Expo兼容范围的Firebase相关包版本:
    npx expo install --fix
    如果项目中使用了@react-native-firebase系列包,需确保所有该命名空间下的依赖版本号完全一致,跨版本混用会拉取不兼容的GoogleUtilities版本触发报错。
  • 全量清理缓存后重新构建
    旧的预构建缓存、CocoaPods缓存经常会导致配置不生效,按顺序执行清理操作:
    • 删除项目根目录下的node_modules文件夹、手动预生成的ios文件夹
    • 执行包管理器缓存清理:npm用户运行npm cache clean --force,yarn用户运行yarn cache clean
    • 执行npx expo prebuild --clean重新生成原生项目配置
    • 本地构建可进入ios目录执行pod deintegrate && pod install --repo-update后再编译;云端构建直接运行eas build -p ios即可。

若以上步骤操作后仍存在报错,可在app.config.js中编写轻量自定义插件,在Podfile生成阶段直接为GoogleUtilities添加:modular_headers => true属性,无需直接改动Podfile文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 11:42:16