繁体   English   中英

Settings.bundle 版本号更新为 $(MARKETING_VERSION)

[英]Settings.bundle version number is updating as $(MARKETING_VERSION)

我有一个应用程序,当我从

XCode > 常规 > 版本

但最近我已将 XCode 更新为 11.0,似乎脚本没有按预期工作:

version=`/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" $SRCROOT/MyApp/Info.plist`
version+=" ("
version+=`/usr/libexec/PlistBuddy -c "Print CFBundleVersion" $SRCROOT/MyApp/Info.plist`
version+=")"
/usr/libexec/PlistBuddy "$SRCROOT/MyApp/Settings.bundle/Root.plist" -c "set PreferenceSpecifiers:1:DefaultValue $version"

上面的脚本假设自动更新版本,并且在设置>应用程序中可见。

在此处输入图像描述

但问题是这个脚本是否需要做任何更改才能从 XCode 自动更新版本号?

当前,当版本从XCode > 常规 > 版本不正确增加时,它被脚本替换为 $(MARKETING_VERSION)。

版本字符串$MARKETING_VERSION以及内部版本号$CURRENT_PROJECT_VERSION现在在构建过程中作为环境变量公开,因为它们现在保留在.pbxproj配置中。

你应该能够像这样实现你想要的:

version="$MARKETING_VERSION ($CURRENT_PROJECT_VERSION)"
/usr/libexec/PlistBuddy "$SRCROOT/MyApp/Settings.bundle/Root.plist" -c "set PreferenceSpecifiers:1:DefaultValue $version"

它通过显示 MARKETING_VERSION 本身起作用:感谢@dgimb 和@Mojtaba Hosseini 的回答。

version="$MARKETING_VERSION"
version+=" ("
version+=`/usr/libexec/PlistBuddy -c "Print CFBundleVersion" $SRCROOT/MyApp/Info.plist`
version+=")"

/usr/libexec/PlistBuddy "$SRCROOT/MyApp/Settings.bundle/Root.plist" -c "set PreferenceSpecifiers:1:DefaultValue $version"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM