Xcode: Autoincrement Build number

Come distinguere in maniera certa una compilazione da un altra? Come sapere, indipendentemente dalla data, quale archivio per l’invio ad Apple è stato creato prima o dopo? È sufficiente utilizzare il Build number, nei settings del progetto in Xcode, appena sotto il Version number. Però modificarlo ogni volta a mano è fastidiosissimo.

Ecco allora che possiamo utilizzare il comodissimo script di sekati:

1
2
3
4
5
6
7
8
9
10
11
12
13
# xcode-build-bump.sh
# @desc Auto-increment the build number every time the project is run. 
# @usage
# 1. Select: your Target in Xcode
# 2. Select: Build Phases Tab
# 3. Select: Add Build Phase -> Add Run Script
# 4. Paste code below in to new "Run Script" section
# 5. Drag the "Run Script" below "Link Binaries With Libraries"
# 6. Insure that your starting build number is set to a whole integer and not a float (e.g. 1, not 1.0)
 
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "${PROJECT_DIR}/${INFOPLIST_FILE}")
buildNumber=$(($buildNumber + 1))
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "${PROJECT_DIR}/${INFOPLIST_FILE}"
# xcode-build-bump.sh
# @desc Auto-increment the build number every time the project is run. 
# @usage
# 1. Select: your Target in Xcode
# 2. Select: Build Phases Tab
# 3. Select: Add Build Phase -> Add Run Script
# 4. Paste code below in to new "Run Script" section
# 5. Drag the "Run Script" below "Link Binaries With Libraries"
# 6. Insure that your starting build number is set to a whole integer and not a float (e.g. 1, not 1.0)

buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "${PROJECT_DIR}/${INFOPLIST_FILE}")
buildNumber=$(($buildNumber + 1))
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "${PROJECT_DIR}/${INFOPLIST_FILE}"

In pratica si aggiungono e ultime tre righe ad una nuova Build Phase (si crea cliccando sul + in alto a sinistra). L’autore consigli di spostare questa nuova fase appena sotto “Link Binaries With Libraries”, ovvero appena sotto i framework.

Se il numero di Build è un numero intero, questo viene incrementato ogni volta che si lancia il comando Build o Run, sia per il Simulatore che per un Device, e ogni volta che si archivia per inviare l’app ad Apple.

Comodissimo.