Build Settings中Current Project Version未按预期更新问题求助
问题根因
你对两个参数的依赖逻辑理解完全反向,这是配置不生效的核心原因:
- Xcode 构建设置中的
CURRENT_PROJECT_VERSION(即「Current Project Version」字段)是存储在项目.pbxproj文件中的源配置值,Info.plist里的CFBundleVersion(Bundle Version)是派生值。默认链路是CURRENT_PROJECT_VERSION赋值给Info.plist的对应字段,而非反向读取。你将「Current Project Version」设为$(CURRENT_PROJECT_VERSION)属于自引用配置,没有任何实际指向,自然会显示为空。 - PlistBuddy 仅修改
Info.plist文件,不会反向写入.pbxproj配置,CURRENT_PROJECT_VERSION没有任何更新来源,自然无法同步。
适配需求的实现方案(无需fastlane/agvtool)
调整依赖方向即可实现单处修改、全局同步:
- 先将
Info.plist中CFBundleVersion的值修改为$(CURRENT_PROJECT_VERSION),让其从构建设置读取版本号 - 脚本不再修改
Info.plist,直接修改.pbxproj中的CURRENT_PROJECT_VERSION配置,参考脚本片段如下:
# 替换为你的实际项目路径、目标版本号 PROJ_PBX_PATH="./YourProject.xcodeproj/project.pbxproj" TARGET_VERSION="2.0.4" # 批量替换pbxproj中所有CURRENT_PROJECT_VERSION配置(如果多Target需要精准匹配可调整sed规则) sed -i '' "s/CURRENT_PROJECT_VERSION = [0-9.]*;/CURRENT_PROJECT_VERSION = $TARGET_VERSION;/g" "$PROJ_PBX_PATH"
上述操作完成后,构建设置的「Current Project Version」和打包后产物的 Bundle Version 会自动保持一致。
内容的提问来源于stack exchange,提问作者Swifty
相关产品推荐
相关产品推荐

