-
-
Save ggthedev/ed289732ab65651001f3 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Tips from: http://xcodehelp.blogspot.ie/2012/05/add-version-number-to-settings-screen.html | |
# Reference from: https://developer.apple.com/library/mac/documentation/DeveloperTools/Reference/XcodeBuildSettingRef/1-Build_Setting_Reference/build_setting_ref.html | |
# Get the correct path for the git binary | |
git=`sh /etc/profile; which git` | |
# Save paths for the project and target Info.plist | |
projectPlistPath="${PROJECT_DIR}/${INFOPLIST_FILE}" | |
targetPlistPath="${TARGET_BUILD_DIR}/${INFOPLIST_PATH}" | |
# Get the base build number from project Info.plist (previous build, e.g. 171) | |
baseBuildNumber=$(echo -n `/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$projectPlistPath"`) | |
# Increment the base build number by one | |
newBuildNumber=$(expr $baseBuildNumber + 1) | |
# Update raw build number for both Info.plists (project and target) | |
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $newBuildNumber" "$projectPlistPath" | |
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $newBuildNumber" "$targetPlistPath" | |
# Get latest git commit SHA1 | |
gitBuildNumber=$(echo -n `"$git" reflog --oneline | head -1 | awk '{print $1}'`) | |
# Get git branch name | |
gitBranchName=`"$git" rev-parse --abbrev-ref HEAD` | |
# Making sure we don't have any \n in there | |
gitBuildWithBranch=$(echo -n "$gitBuildNumber-$gitBranchName") | |
# Getting the base version from the project Info.plist (e.g. 1.3.5) | |
baseVersion=$(echo -n `/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "$projectPlistPath"`) | |
# Join them all together e.g. 1.3.5-172 (7ca1d87-new-feature) | |
fullVersion="$baseVersion-$newBuildNumber ($gitBuildWithBranch)" | |
# This is where the Settings.bundle's plist is located. YMMV | |
targetSettingsBundlePath="${TARGET_BUILD_DIR}/${CONTENTS_FOLDER_PATH}/Settings.bundle/Root.plist" | |
# Save the full version on the Settings.bundle for debug purposes | |
/usr/libexec/PlistBuddy -c "Set :PreferenceSpecifiers:9:DefaultValue $fullVersion" "$targetSettingsBundlePath" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment