Expo开发应用上传App Store后屏幕持续常亮,求解决方案
解决App Store应用屏幕常亮问题的排查步骤
1. 检查Expo项目配置文件(app.json/app.config.js)
- 查看
ios配置下的infoPlist,确认是否存在UIApplicationIdleTimerDisabled相关设置,或是第三方库要求添加的屏幕唤醒配置项,如有则移除或设置为false。 - 检查是否引入了
expo-screen-orientation这类控制屏幕状态的库,即使代码未调用,部分版本的库可能默认开启屏幕常亮,可尝试卸载后重新构建测试。
2. 排查依赖库的默认行为
- 彻底卸载
expo-av(执行npm uninstall expo-av或yarn remove expo-av),清理缓存后重新构建IPA上传测试,确认是否是该库在原生层面默认触发了屏幕常亮。 - 对比之前正常的同类应用的
package.json,找出当前项目新增的依赖,逐个卸载排查是否有库影响屏幕状态。
3. 检查Expo构建环境与版本差异
- 确认当前项目使用的Expo SDK版本和之前正常应用是否一致,不同SDK版本可能存在原生默认配置变更,可尝试降级到之前的稳定版本测试。
- 若使用了
expo-dev-client,尝试切换为生产环境构建(而非devclient构建)上传测试,排查是否是开发构建的默认配置导致屏幕常亮。
4. 原生层面的隐藏配置(预构建或ejected项目)
- 若项目做过
expo prebuild或ejected到原生工程,打开Xcode查看AppDelegate.m/AppDelegate.swift中是否存在UIApplication.shared.isIdleTimerDisabled = true代码,这会强制屏幕保持常亮。 - 检查Xcode项目的
Info.plist,确认没有添加与屏幕唤醒相关的特殊权限或配置项。
5. 测试基础空白Expo项目
- 新建仅含基础结构、只导入React的空白Expo项目,用相同的SDK版本和构建流程打包上传到TestFlight,测试是否仍出现屏幕常亮。如果是,说明当前Expo SDK或构建环境存在问题;如果不是,说明原项目的配置或依赖有隐藏问题。
内容的提问来源于stack exchange,提问作者yavuzceliker
相关产品推荐
相关产品推荐

