简体   繁体   中英

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

I have an app which was setting versions automatically when I incremented from

XCode > General > Version .

But recently I have updated XCode to 11.0 and seems the script is not working as expected:

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"

Above script suppose to automatically update version and would have been visible in Settings > App.

在此处输入图像描述

But the question is there any change need to be done for this script to make automatically update version number from XCode?

Currently it is being replaced by scripts as $(MARKETING_VERSION) when version is incremented from XCode > General > Version which is not correct.

The version string $MARKETING_VERSION as well as build number $CURRENT_PROJECT_VERSION are now exposed as environment variable during the build process as they are now persisted in the .pbxproj configuration.

You should be able to achieve what you want like this:

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

It worked by displaying MARKETING_VERSION itself: Thanks @dgimb and @Mojtaba Hosseini for your answers.

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"

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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