使用EAS Build构建后应用闪屏后白屏,原Expo Build正常求解决
EAS Build构建应用闪屏后白屏的额外排查方案
- 核对原生依赖兼容性:EAS Build的构建逻辑更贴近原生,部分第三方库在Expo Build托管环境下能正常运行,但在EAS的预构建/裸机环境可能存在版本冲突。直接检查
package.json里react-native、expo核心包的版本是否匹配当前EAS要求,老版本的expo-*包大概率需要升级到适配当前SDK的版本。 - 验证预构建配置文件:如果使用
expo prebuild,务必检查android/app/src/main/AndroidManifest.xml和ios/[项目名称]/Info.plist的配置项,比如Android端闪屏的android:windowBackground是否正确指向资源文件,iOS的LaunchScreen.storyboard有没有被预构建流程篡改。同时确认app.json中expo.splash的resizeMode设置(比如contain或cover),避免因闪屏资源加载失败触发白屏。 - 查看原生端错误日志:别只盯着JS层日志,直接用Android Studio或Xcode查看原生报错。Android可以执行
adb logcat *:E过滤错误日志,iOS在Xcode控制台找红色报错信息——很多时候是原生模块初始化失败(比如权限配置缺失、资源路径错误),这类问题在Expo Build托管环境会被自动处理,但EAS需要手动配置。 - 检查环境变量配置:EAS Build的环境变量注入逻辑和Expo Build不同,如果你代码里用到
process.env变量,要确认eas.json的构建配置中env字段已正确配置,或者改用expo-constants的Constants.expoConfig.extra传递变量,避免因变量未定义导致JS逻辑崩溃。 - 清理构建缓存:执行
eas build --clear-cache彻底清空EAS的构建缓存,旧缓存很可能导致依赖或配置未更新,尤其是你近期升级过SDK或依赖包的情况。 - 测试最小化复现项目:把当前项目代码逐步精简,只保留闪屏和基础页面,用EAS Build构建测试。如果能正常显示,再逐步加回其他依赖和业务代码,定位到触发白屏的具体模块或逻辑。
- 校验JS bundle完整性:手动生成JS bundle(执行
expo export --platform android或expo export --platform ios),检查生成的index.jsbundle是否完整,有没有语法错误或缺失的模块引用——EAS打包时偶尔会出现bundle不完整的情况。
内容的提问来源于stack exchange,提问作者Ashif Khan
相关产品推荐
相关产品推荐

