React Native Expo iOS构建版本号(Build Number)不递增问题求助
我之前也碰到过一模一样的问题——明明改了app.json里的版本配置,但EAS Build死活用旧值打包,给你几个实用的排查和解决方向:
强制清理EAS Build缓存
EAS Build会缓存之前的构建环境,很大概率是旧配置被缓存住了。试试带清理参数重新构建:eas build --profile production --platform ios --clear-cache确认你修改的是正确的配置文件
如果你的eas.json里给production profile指定了专属配置文件(比如app.production.json),那修改根目录的app.json根本不会生效。打开eas.json检查production配置项,看有没有extra.eas.build.config字段指向了其他配置文件。检查EAS Profile是否覆盖了buildNumber
打开eas.json的build.production.ios部分,看看是不是硬编码了buildNumber值。如果有这个配置,它会直接覆盖app.json里的设置,要么把值改成你需要的1.2,要么删掉这个字段让它读取app.json的配置。验证解析后的配置是否正确
用Expo CLI命令查看最终生成的iOS配置,确认你的修改真的被读取了:expo config --type ios在输出里找
CFBundleVersion(对应buildNumber)和CFBundleShortVersionString(对应version),看是不是你设置的1.2和1.2.0。如果这里还是旧值,说明你的配置文件没被正确识别,要检查文件路径和JSON语法。排查是否有其他硬编码的版本号
如果你之前从managed workflow切换过bare workflow,或者手动修改过ios目录下的Info.plist,那里面可能留了硬编码的版本号。不过managed workflow下EAS会自动生成Info.plist,这个情况概率不高,但可以顺手排查下。重新登录EAS CLI
偶尔身份验证或同步异常也会导致配置不生效,试试退出再登录:eas logout eas login
按这些步骤走下来,应该能解决buildNumber不更新的问题,顺利提交到expo.dev。
内容的提问来源于stack exchange,提问作者Keaton Benning

