HowTo:Servidor:Git:XCode:Versioning
De Luispa
Integrar Git y Xcode
En este artículo describo cómo rellenar CFBundleVersion y CFBundleShortVersionString con Xcode cuando usas Git. Básicamente esto va a permitir que puedas enlazar el número de Tag-Commit-Versión de GIT con el número de versión de tu programa. Asumo que tienes Git instalado y funcionando, que también tienes Xcode y que sólo te falta este último paso.
Antes de nada y MUY IMPORTANTE: El sistema de versioning de Git's no se diseñó para estár relacionado con el sistema de releases (o versiones) de tu aplicación. Este concepto lo tienes que tener claro. No tiene nada que ver. Ahora bien, vamos a usar un medio-truco para poder conseguir algo parecido, y desde el punto de vista funcional bastante válido.
En Git no existe nada parecido a versión 1.0.1. Los commits en Git obtienen su número de referencia sobre la base del hash SHA, el nombre de la Ramificación (Branch) o bien el nombre de la Etiqueta (TAG). Ahora bien, la mayoría de la gente lo que hace es para gestionar la versión de su aplicación es emplear los TAGs de Git para identificar estados en los que va creando versiones de su producto. Es decir, haces un último commit, le asocias como TAG que es la siguiente versión y punto.
Es así como enganchamos con XCode para asociar esos TAG's con un número de versión de tu Aplicación. Obviamente no hay ningún botón mágico en XCode, sino que tenemos que hacer algo de Scripts que miran en el repositorio Git.
XCode
Veamos qué hay que hacer en tu XCode. Voy a usar ejemplos para facilitar la explicación.
- Selecciona tu proyecto (parchis-mac-cmd)
- Selecciona en la pantalla central "Build Phases" -> Abajo a la derecha "Add Build Phase" -> Add Run Script
- Selecciona Run Script y despliegalo.
Shell : "/bin/bash" Script: git=/usr/bin/git touch Info.plist version=`$git describe --dirty` version=`echo $version | sed 's/[a-zA-Z]*//'` versionNum=`echo $version | sed 's/\-[0-9]*\-[a-zA-Z0-9]*//'` echo "#define GIT_VERSION $version" > InfoPlist.h echo "#define APP_VERSION $versionNum" >> InfoPlist.h
Right click on Targets, and select Add -> New Target Choose Shell Script Target Enter a name. I chose GenGitVersion Close the Target “GenGitVersion” Info screen that popped up, and expand the GenGitVersion under Targets in the Groups & Files view. Double click on Run Script to open the “Run Script Phase for “GenGitVersion” Info” Screen.
Proceso =
- Lo primero es hacer al menos un primer TAG. Si no lo has hecho nunca, ya es hora.
$ git commit -a (Hazlo si lo tenías pendiente solo) $ git tag -a "1.0.0" -m "Ver 1.0.0" NOTA: El script siguiente ESPERA que uses el formato X.Y.Z, siendo estos 3 números.
Enlaces y Créditos
| [1] | fuente de la idea |
Volver a la página de SERVICIOS
--Luis 15:44 7 dic 2011 (CET)

