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

Expo Go应用正常但EAS构建真机崩溃(Expo SDK ~47.0.12)

Expo SDK 47 EAS构建包启动崩溃排查方案

一、先获取崩溃日志(核心步骤)

没有日志无法精准定位问题,必须先拿到:

  • Android:连接设备到电脑,运行adb logcat *:E,然后启动崩溃的APP,抓取错误日志。
  • iOS:打开Xcode → 窗口 → 设备与模拟器,选中你的设备,查看控制台输出,启动APP后过滤错误信息。

二、依赖版本兼容性修复

从你的package.json里发现几个明显的版本不匹配问题:

  1. react-native-gradle-plugin版本过高:
    你用的RN版本是0.70.5,但react-native-gradle-plugin是^0.71.14,插件版本必须和RN主版本一致。修改为0.70.x版本:
    "react-native-gradle-plugin": "~0.70.12"
    
  2. 排查第三方原生依赖:
    • rn-pdf-reader-js:这个库依赖原生PDF渲染,在EAS构建中可能存在配置缺失,建议替换为Expo官方的expo-pdf(更适配Expo环境),或者检查该库的README确认SDK47的适配配置。
    • @shedaltd/react-native-azure-ad-2:确认该库是否支持Expo SDK47,是否需要在app.json中添加Android/iOS的原生配置(比如权限、URL Scheme等)。

三、检查Babel配置

react-native-reanimated需要在babel中添加插件,确保你的babel.config.js是这样的:

module.exports = function(api) {
  api.cache(true);
  return {
    presets: ['babel-preset-expo'],
    plugins: ['react-native-reanimated/plugin'], // 必须放在最后
  };
};

四、EAS构建配置与缓存清理

  1. 检查eas.json是否开启了生产模式下的代码混淆,如果开启了,尝试暂时关闭minifyEnabled测试是否是混淆导致的错误。
  2. 清理构建缓存,避免旧缓存影响:
    eas build --clear-cache
    
    然后重新执行构建。

五、权限与资源配置检查

  • 确认app.json中声明了所有需要的权限,比如expo-file-system需要的存储权限,expo-screen-orientation需要的配置等。
  • 检查闪屏(splash screen)配置,确保expo-splash-screen在App.js中正确调用了hideAsync(),且闪屏资源路径正确。

六、测试开发构建

先构建开发版的安装包测试:

eas build --profile development

如果开发版能正常运行,说明是生产模式下的优化(比如代码压缩、混淆)导致的问题,再针对性排查生产构建的配置。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 22:37:02