We'd like to put the current version of the app as a string in the bottom of our options in Settings.app, as a section footer.
I haven't worked with build scripts in Xcode very much, so i need some help on
- how to fetch the current version, pr开发者_C百科obably from the info.plist
- how to replace a static string, for example CURRENT_VERSION_NO in the Root.plist inside the Settings.bundle
Thanks Maciej.
You can add a run script phase for your target (build phases > add build phase > add run script). Then you will have a shell script where you could use PlistBuddy to get the version string and set it in your other plist.
For example :
/usr/libexec/PlistBuddy -c "print:CFBundleVersion" "$CONFIGURATION_BUILD_DIR/$INFOPLIST_PATH"
will display the version string of your app. If you record this in a variable and set the value on the other plist using Plist Buddy -c set, you will be done.
This would give something like :
versionString=$(/usr/libexec/PlistBuddy -c "print:CFBundleVersion" "$CONFIGURATION_BUILD_DIR/$INFOPLIST_PATH")
/usr/libexec/PlistBuddy -c "Set CURRENT_VERSION_NO $versionString" "$THE_PATH_TO_YOUR_PLIST_FILE"
I never used PlistBuddy -c copy but it should allow you to do this in only one line.
精彩评论