升级Xcode 14后,React Native项目构建出旧版本问题求助
解决Xcode 14构建React Native 0.63.3项目时版本号不更新的问题
可能的原因及排查修复步骤
1. 核对Xcode Scheme的构建配置
- 打开Xcode,点击顶部菜单栏
Product > Scheme > Edit Scheme - 确认
Archive和Run阶段使用的是目标配置(比如myApp-staging),避免Xcode默认沿用了旧配置(比如Release)导致读取旧版本号 - 进入对应配置的
Build Settings,检查Version和Build号是否设置为2.5.0,这里的配置优先级高于直接修改Info.plist
2. 验证Info.plist的配置与路径
- 手动打开
ios/[你的项目名]/Info.plist,确认CFBundleShortVersionString为2.5.0,CFBundleVersion也对应更新后的构建号 - 在Xcode的
Build Settings > Packaging中,检查Info.plist File的路径是否正确,确保没有指向旧的文件副本
3. 深度清理缓存与构建产物
- 执行常规清理:
Cmd+Shift+K清理Build Folder - 关闭Xcode后,终端执行
rm -rf ios/build删除本地构建目录 - 清空
~/Library/Caches/com.apple.dt.Xcode目录,重启Mac后再打开Xcode重新构建
4. 检查版本同步脚本(如果有)
- 确认项目根目录
package.json的版本号为2.5.0,若项目有postinstall这类自动同步版本到iOS的脚本,手动执行一次(比如npm run sync-version) - 若脚本存在权限或执行时机问题,尝试手动将package.json的版本号同步到Xcode的Build Settings中
5. 适配Xcode 14兼容性
- React Native 0.63.3未适配Xcode 14,需调整以下配置:
- 在
Build Settings中搜索Enable Bitcode,设置为No - 检查
Other Linker Flags,确保包含-ObjC,Xcode 14对链接器规则更严格 - 进入ios目录执行
pod install --repo-update,更新Pods依赖以适配Xcode 14
- 在
6. 区分模拟器与归档构建的差异
- 在Xcode中直接选择iPhone 12 Pro模拟器点击Run,看是否能运行2.5.0版本,以此判断是归档环节问题还是全量Xcode构建问题
- 若模拟器运行正常,重点检查Archive配置是否与Run配置一致,比如签名、环境变量等是否存在差异
内容的提问来源于stack exchange,提问作者Mathias Bradiceanu
相关产品推荐
相关产品推荐

