Expo expo-application返回版本与app.json配置不符问题求助
解决expo-application返回版本与app.json不一致的问题
排查修复步骤
- 确认app.json配置位置:确保修改的是
expo.version(对应应用版本)、expo.ios.buildNumber和expo.android.versionCode(对应构建版本),不要误改其他无关配置文件。 - 清除Expo缓存:执行
expo r -c重启项目,旧缓存可能导致配置未同步更新。 - 检查EAS Build配置:如果用EAS打包,确认
eas.json里没有在build参数中覆盖版本号——这类配置优先级会高于app.json,可能导致版本被替换。 - 区分本地预览与正式包:本地Expo Go预览可能显示的是Expo Go自身的版本(你看到的2.28.xx大概率是这个),打包后的正式APK/IPA才会读取你的配置。可以用
eas build --profile preview打测试包,安装后再验证Application.nativeAppVersion和Application.nativeBuildVersion的值。
临时替代方案
如果上述步骤无效,可直接从app.json读取版本号绕过原生层异常:
import appConfig from '../app.json'; import { Platform } from 'react-native'; // 获取配置的应用版本 const appVersion = appConfig.expo.version; // 获取对应平台的构建版本 const buildVersion = Platform.select({ ios: appConfig.expo.ios.buildNumber, android: appConfig.expo.android.versionCode.toString(), });
额外注意点
- Expo托管工作流中,expo-application的版本读取依赖原生构建时注入的配置,要确保没有第三方插件或自定义脚本在构建过程中修改了版本号。
- 若最近升级过Expo SDK,需确认app.json的配置格式是否匹配当前SDK要求,部分版本更新会调整配置字段的规则。
内容的提问来源于stack exchange,提问作者LamaTo
相关产品推荐
相关产品推荐

