如何让Xcode新的「管理版本与构建号」功能更新项目目标值?
解决Xcode「管理版本与构建号」不更新项目目标版本号/构建号的问题
Xcode的「管理版本与构建号」功能仅在归档上传流程中修改归档内的版本信息,不会自动同步更新Xcode项目里的MARKETING_VERSION和CURRENT_PROJECT_VERSION变量。要让项目文件同步更新,可通过以下两种方式操作:
一、手动同步项目版本信息
- 上传归档并确认App Store Connect完成版本号/构建号更新后,打开Xcode项目的目标设置:
- 进入目标的「General」标签页,找到「Version」(对应
MARKETING_VERSION)和「Build」(对应CURRENT_PROJECT_VERSION) - 将这两个值手动修改为App Store Connect中显示的最新版本号(比如你遇到的1.0)和构建号(比如2)
- 进入目标的「General」标签页,找到「Version」(对应
- 注意:Xcode 14+的SwiftUI新项目中,Info标签页的
Bundle version string (short)和Bundle version是绑定到上述两个变量的,直接修改Info标签页的值会被重置,必须在General标签页或项目的Build Settings中修改对应变量。
二、脚本自动同步(替代手动操作)
如果想避免手动重复修改,可以结合agvtool或自定义脚本,在上传归档后自动更新项目的版本变量:
- 使用agvtool快速更新:
# 更新构建号为2 agvtool new-version -all 2 # 更新版本号为1.0 agvtool new-marketing-version 1.0 - 自定义Xcode脚本示例(可添加到构建阶段或单独运行):
# 替换为App Store Connect返回的最新版本号和构建号 NEW_MARKETING_VERSION="1.0" NEW_BUILD_NUMBER="2" # 更新项目的MARKETING_VERSION和CURRENT_PROJECT_VERSION xcodebuild -project YourProject.xcodeproj -target YourTarget MARKETING_VERSION=$NEW_MARKETING_VERSION CURRENT_PROJECT_VERSION=$NEW_BUILD_NUMBER
关键说明
- 「管理版本与构建号」的设计初衷是临时修正归档的版本信息以满足App Store Connect的校验要求,并非用来同步更新本地项目文件
- Xcode 14+中,
MARKETING_VERSION和CURRENT_PROJECT_VERSION是项目级变量,所有绑定这两个变量的目标会自动同步更新,无需逐个修改Info.plist
内容的提问来源于stack exchange,提问作者Senseful
相关产品推荐
相关产品推荐

