Skip to content

Instantly share code, notes, and snippets.

@BennettSmith
Forked from dsibilly/xcode4_build.py
Created March 25, 2012 03:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save BennettSmith/2190987 to your computer and use it in GitHub Desktop.
Save BennettSmith/2190987 to your computer and use it in GitHub Desktop.
Unique Build Numbers for XCode 4
# XCode 4 auto-versioning script for Git
# Inspired by the work of Axel Andersson, Marcus S. Zarra and Matt Long
# http://valthonis.net/u/19
"""
NOTE: Due to its use of build environment variables, this
script will only work from inside XCode's build process!
"""
import os
import csv
from subprocess import Popen, PIPE
from Foundation import NSMutableDictionary
cmd = "/usr/local/bin/git rev-parse --short HEAD" # get the short commit hash from git
build_number = Popen(cmd, shell=True, stdout=PIPE).stdout.read()
info_plist = os.environ['BUILT_PRODUCTS_DIR'] + "/" + os.environ['WRAPPER_NAME'] + "/Info.plist"
# Open the plist and write the short commit hash as the bundle version
plist = NSMutableDictionary.dictionaryWithContentsOfFile_(info_plist)
core_version = csv.reader([plist['CFBundleVersion'].rstrip()], delimiter=" ").next()[0]
full_version = ''.join([core_version, ' build ', build_number])
plist['CFBundleVersion'] = full_version
plist.writeToFile_atomically_(info_plist, 1)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment