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

Expo独立构建应用运行失败且无法更新构建求助

Expo独立构建应用卡在闪屏的问题排查与解决

核心问题

应用在Expo Go环境运行正常,但打包为独立版本后启动卡在闪屏,删除旧构建重打、EAS Update均无法解决问题,伴随三类具体报错。

具体问题

  • Async Storage依赖报错:未在代码中使用已废弃的Async Storage API,但Firebase Auth依赖包主动调用该API
  • 代码修改无法同步到构建:本地修复了fontesLoaded拼写错误,但构建仍报该错误
  • 语法错误误报:系统提示某文件存在缺少逗号、未定义undefined的语法错误,但实际文件无对应问题

依赖版本信息

{
  "@babel/core": "^7.22.10",
  "@babel/traverse": "7.16.7",
  "react-native": "0.72.3",
  "firebase": "^10.2.0",
  "expo": "~49.0.7",
  "@react-native-async-storage/async-storage": "1.18.2"
}

已尝试的解决方法

  • 删除旧构建后重新构建
  • 使用EAS Update推送更新

针对性解决方案

1. 解决Async Storage依赖问题

Firebase Auth在React Native环境下默认依赖Async Storage做身份持久化,需适配Expo环境:

  • 确保@react-native-async-storage/async-storage版本与Expo 49兼容(当前1.18.2符合要求)
  • 在app.json/app.config.js中添加插件配置,确保Expo构建时正确打包该依赖:
    "plugins": ["@react-native-async-storage/async-storage"]
    
  • 升级Firebase到最新稳定版(如10.5.x+),修复旧版本的适配问题

2. 解决代码修改无法同步问题

问题源于构建缓存或Git同步异常:

  • 清理EAS构建缓存后重新构建:运行eas build --clear-cache
  • 确认本地所有代码修改已提交至Git仓库,EAS构建默认拉取仓库代码,未提交修改不会被打包
  • 检查EAS构建的分支配置,确保使用的是包含修改代码的分支

3. 解决语法错误误报问题

因Babel版本不匹配或缓存导致转译异常:

  • 统一Babel相关包版本:将@babel/traverse升级至^7.22.10(与@babel/core版本一致)
  • 清理本地缓存:删除node_modules/.cache文件夹,重新执行npm install/yarn install
  • 在babel.config.js中添加Firebase依赖的转译配置,避免第三方代码转译错误:
    module.exports = function(api) {
      api.cache(true);
      return {
        presets: ['babel-preset-expo'],
        overrides: [
          {
            test: /node_modules\/firebase\/.*/,
            presets: ['babel-preset-expo']
          }
        ]
      };
    };
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 09:07:40