Automatic build number incrementing in Xcode
4 comments
·June 28, 2025cjk
I disagree that a timestamp is a “build number”. Additionally, injecting dates/times into builds is bad juju from a reproducibility perspective.
Hamuko
Preferably you'd have a build server where you can use the build number. I use this to build my macOS application in GitHub Actions.
[[ $GITHUB_REF_TYPE = "tag" ]] && MARKETING_VERSION=$GITHUB_REF_NAME || MARKETING_VERSION=$(git rev-parse --short HEAD)
echo "Building $MARKETING_VERSION ($GITHUB_RUN_NUMBER)"
agvtool new-version -all $GITHUB_RUN_NUMBER
agvtool new-marketing-version $MARKETING_VERSION
Non-tagged build gives me "Building a3d4743 (54)", tagged build gives me "Building 0.3.1 (55)".cjk
Agreed, CI-managed build numbers are a good way of handling this. I've done the same thing at my past handful of jobs.
Don't like this since it's just asking for code conflicts with any other developer's code and their own build number changes.
I prefer setting the number on the CD pipeline. It's one less file to have changes in git.