Expo托管工作流执行eas update后应用崩溃问题求助
Expo 45升级至47后OTA更新崩溃问题排查方案
核对工具版本兼容性
运行expo --version和eas --version,确认expo-cli、eas-cli版本与SDK47官方要求完全匹配。版本不兼容的话,执行对应版本安装命令,比如:npm install -g expo-cli@^6.0.0 eas-cli@^3.0.0清除缓存后重新生成更新包
- 本地清除Expo开发缓存:
expo r -c - 清除EAS构建缓存:
eas build:cache:clear - 重新推送OTA更新:
eas update
- 本地清除Expo开发缓存:
本地模拟生产环境验证
- 执行
expo export导出生产包,检查过程中是否有编译报错 - 用
expo start --no-dev --minify启动生产模式,本地测试应用是否正常运行,确认无问题后再推送OTA
- 执行
检测并修复原生依赖问题
- 运行
npx expo-doctor扫描依赖冲突,根据提示逐一修复 - 核对ios/Podfile和android/build.gradle中的依赖版本与SDK47要求一致,必要时执行
npx expo prebuild --clean(操作前备份原生目录文件)
- 运行
提取设备崩溃日志定位根源
- iOS:通过Xcode连接设备,查看控制台的应用崩溃堆栈信息,区分是JS代码错误还是原生模块异常
- Android:用Android Studio打开项目,通过Logcat过滤应用进程,获取崩溃详情,重点排查JS bundle加载失败或原生模块初始化问题
分步回滚测试
先推送一个仅修改无关文本的空更新,若仍崩溃则排除业务代码问题;若空更新正常,再逐步排查项目中SDK45到47的废弃API或不兼容写法。
内容的提问来源于stack exchange,提问作者Rahul
相关产品推荐
相关产品推荐

