Incremento automatico del numero di build in Xcode

Su GitHub ho trovato un utile script che permette di eseguire l’incremento automatico del numero di build in un progetto Xcode.

Lo script incrementa ad ogni run il numero di build del progetto (CFBundleVersion), che deve essere impostato in precedenza ad un valore intero iniziale (ad esempio 1).

Eccovi lo script in questione:

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}"

Utilizzo

Per utilizzarlo dovrete seguire questi semplici passi:

  1. Selezionate il vostro Target in Xcode
  2. Spostatevi nel tab Build Phases
  3. Selezionate Add build phase -> Add Run Script Phase
    Creazione 'Run Script Phase'
  4. Nella nuova sezione creata copiate lo script
  5. Spostate la nuova fase Run Script subito sotto Link Binaries With Libraries
    Inserimento script
  6. Verificate nell’Info.plist che il valore di Bundle Version (CFBundleVersion) sia settato ad un intero
    Verifica dell'Info.plist

Ora basterà eseguire in Run del vostro progetto per veder incrementare il numero di build.

Incremento del numero di build

Questo script può essere molto utile se utilizzare TestFlight, in cui non potete variare il numero di versione dell’applicazione dopo averla creata sul portale. In questo modo avrete un identificativo univoco e automatico della versione dell’applicazione che i vostri utenti stanno testando.

Sulla repository GitHub è presente anche una seconda versione dello script, che esegue l’incremento del numero di versione (CFBundleShortVersionString) durante l’Archive del progetto.

Happy coding! :]

Ingegnere informatico e sviluppatore freelance, mi occupo da anni di sviluppo per iOS (ma non solo). Dal 2008 scrivo su questo piccolo blog (con qualche lunga pausa), in cui parlo di programmazione e di qualsiasi altra cosa che mi diverta.

Leave a reply:

Your email address will not be published.

Site Footer