Update current Xcode target's build number with the number of commits on a specified branch. http://tgoode.com/2014/06/05/sensible-way-increment-bundle-version-cfbundleversion-xcode/
#!/bin/bash | |
# update_build_number.sh | |
# Usage: `update_build_number.sh [branch]` | |
# Run this script after the 'Copy Bundle Resources' build phase | |
# Ref: http://tgoode.com/2014/06/05/sensible-way-increment-bundle-version-cfbundleversion-xcode/ | |
branch=${1:-'master'} | |
buildNumber=$(expr $(git rev-list $branch --count) - $(git rev-list HEAD..$branch --count)) | |
echo "Updating build number to $buildNumber using branch '$branch'." | |
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}" | |
if [ -f "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}.dSYM/Contents/Info.plist" ]; then | |
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}.dSYM/Contents/Info.plist" | |
fi |
This comment has been minimized.
This comment has been minimized.
Update: now updating the dSYM Info.plist as well. Thanks to this comment by @dismory. |
This comment has been minimized.
This comment has been minimized.
Update: make sure the dSYM Info.plist file exists before trying to update it. Thanks to this comment by Motti Shneor. |
This comment has been minimized.
This comment has been minimized.
If you don't want to anchor the build number to a branch, you can use this to calculate it: |
This comment has been minimized.
This comment has been minimized.
@airdrummingfool, with Xcode 10, ${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}.dSYM seems to be always missing. Good thing there is an |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This comment has been minimized.
To use: add this as a 'Run Script' after the 'Copy Bundle Resources' build script in Xcode. If no argument is provided (to specify which branch to compare against), master is used by default.