zte tengo samsung saber que programador numero number eres compilacion como celular cambiar aparece xcode cocoa version

xcode - tengo - numero de compilacion zte blade



¿Mejor forma de incrementar el número de compilación? (19)

Actualizo el build number siguiendo el método.

$INFO_FILE es la ruta del archivo plist. Y $build_number es un nuevo número de compilación para este edificio.

/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $build_number" "${INFO_FILE}"

En general, mi $build_number está compuesto por partes major y minor . El minor proviene de la información del proyecto. Entonces describo cómo generar la parte major .

## Composed by `major` and `minor`. ## `minor` is parsed from project information. It''s another story. ## Examples: `21.1`, or `21.1.3` build_number="${major_number}.${minor_number}"

Tengo 2 estrategias para decidir el $build_number .

Primera estrategia

Esta estrategia utiliza el recuento de git tag para decidir el major del build number de build number . Si hay 53 etiquetas del proyecto, devolverá 53 siguiendo el script de shell.

En general, está aumentando. Y obligará al desarrollador a poner una etiqueta git antes de publicar.

major_number=$(git tag -l | wc -l | grep -oE "/d+")

Segunda estrategia

Deje que el sistema de Jenkins CI decida la parte major . Tiene una variable de entorno BUILD_NUMBER . Aumenta automáticamente al construir en el sistema de CI. Esta información es útil para rastrear el historial del proyecto en el sistema de CI.

major_number=${BUILD_NUMBER}

He estado usando un script de shell como parte de mi proceso de compilación de Xcode para incrementar el número de compilación dentro del archivo plist , sin embargo, está haciendo que Xcode 4.2.1 se bloquee con frecuencia (con un error sobre el objetivo que no pertenece a un proyecto; el cambio del archivo plist confunde Xcode de alguna manera).

El script de shell hizo esto para que el número de compilación solo se incremente por medio de agvtool cuando un archivo es más nuevo que el archivo plist (por lo que solo crear no aumentó el valor):

if [ -n /"`find ProjDir -newer ProjDir/Project-Info.plist`/" ]; then agvtool -noscm next-version -all; else echo /"Version not incremented/"; fi

¿Hay alguna forma de incrementar el número de compilación (en el archivo plist , o en cualquier otro lugar) que no rompa Xcode?

EDITAR : Esta es mi solución final, basada en la sugerencia de @Monolo. .xcodeproj el siguiente script en ${PROJECT_DIR}/tools (hermano del directorio .xcodeproj ):

#!/bin/sh if [ $# -ne 1 ]; then echo usage: $0 plist-file exit 1 fi plist="$1" dir="$(dirname "$plist")" # Only increment the build number if source files have changed if [ -n "$(find "$dir" /! -path "*xcuserdata*" /! -path "*.git" -newer "$plist")" ]; then buildnum=$(/usr/libexec/Plistbuddy -c "Print CFBundleVersion" "$plist") if [ -z "$buildnum" ]; then echo "No build number in $plist" exit 2 fi buildnum=$(expr $buildnum + 1) /usr/libexec/Plistbuddy -c "Set CFBundleVersion $buildnum" "$plist" echo "Incremented build number to $buildnum" else echo "Not incrementing build number as source files have not changed" fi

EDIT 2 : He modificado el script para incorporar la sugerencia de @Milliways.

Luego invoqué el script desde la sección de Xcode target ''Build Phases'':

EDIT 3 : según la respuesta de @ massimobio, necesitarás agregar comillas alrededor del argumento plist si contiene espacios.

EDIT 4 : Solo para actualizar que mi método preferido para invocar este script de compilación ahora es crear un objetivo separado y hacer que el objetivo de la aplicación dependa de este objetivo del Número de compilación de Bump . Esto asegura que se invoque antes de que el objetivo de la aplicación haga algo con el plist (he notado que le gusta procesar el plist al principio de la compilación). También cambié a una solución puramente basada en Python que mantiene el número de versión en un archivo separado y escribe archivos fuente de la versión, ya que es más útil para productos multiplataforma (es decir, Visual Studio en Windows puede invocar el script, y obviamente las compilaciones cmake / make-type pueden hacerlo también). Esto tiene la ventaja de que el número de compilación es siempre el mismo incluso bajo diferentes plataformas, y también es posible actualizar el archivo Resource.rc Visual Studio con la versión / compilación actual.

Here está el script python que actualmente uso para actualizar archivos Info.plist dentro del proyecto Xcode.


Aquí está mi solución. Si eres como yo: amigable con los terminales, como el rubí, al igual que las versiones semánticas, prueba esto.

Haga un archivo llamado Rakefile que contenga esto:

require "xcodeproj" require "versionomy" XCODEPROJECT = "MyProject.xcodeproj" INFOPLISTFILE = "MyProject/MyProject-Info.plist" $UPDATES = [:major,:minor,:tiny] $UPDATES.each { |part| desc "increment #{part} part of version" task "increment:#{part}" do |task| version=`/usr/libexec/Plistbuddy -c "Print CFBundleVersion" #{INFOPLISTFILE}`.chomp version=Versionomy.parse(version) version=version.bump(part) # I use the same string for CFBundleVersion and CFBundleShortVersionString for now `/usr/libexec/PlistBuddy -c "Set :CFBundleVersion #{version}" #{INFOPLISTFILE}` `/usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString #{version}" #{INFOPLISTFILE}` print "version upgraded to #{version}/n" end }

Prepare: gem install xcodeproj versionomy

Ejecutar: rake increment:major : rake increment:major o rake increment:minor o rake increment:tiny siempre que lo desee.


Aquí hay una versión actualizada. Esto funciona a partir de Xcode 9.3.1, iOS 11.

Haga clic en ''Fases de compilación'' desde el destino de su aplicación, haga clic en el ícono + para agregar un nuevo guión de ejecución, y en el cuadro, pegue este código.

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

Vaya al archivo Info.plist y configure la ''Versión del paquete'' a 1, y la ''Serie de paquetes de cadenas, corto'' a 1, debe establecerse.

Cree el proyecto con Info.plist a la vista, y debería ver la versión de Bundle (número de compilación) cambiar.

  • Tenga en cuenta que a partir de Xcode 9.3.1, no podrá ver estos cambios desde la pestaña general, pero verá los cambios cuando archive una compilación, y en Info.plist

El script que uso actualmente está muy basado en Alix''s , arriba. Mi adaptación, a continuación, agrega un cheque para solo hacer el incremento automático en una versión / archivo de compilación.

Sin ese cambio habrá conflictos de control de versiones ya que cada desarrollador incrementará el número de compilación a su propia velocidad. Y el hecho de que el historial de git estaría innecesariamente contaminado con el número de compilación cambiando todo el tiempo.

# xcode-build-bump.sh # @desc Auto-increment Xcode target build number every time the project is archived # @src .com/a/15483906 # @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) if [ "Release" != "${CONFIGURATION}" ] then exit 0 fi 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}"

También está disponible (en un formato ligeramente más fácil de copiar y pegar) como una gist.github.com/mattpotts/abcffea6d08ad45739ef .


Es posible que desee comprobar una nueva herramienta que he estado desarrollando llamada Xcodebump. Puede manejar la actualización tanto de CFBundleShortVersionString como de CFBundleVersion. Como último paso, también se registrará en git y etiquetará el compromiso para que coincida con los valores de CFBundle.

El proyecto Xcodebump se encuentra aquí:

https://github.com/markeissler/Xcodebump


Es posible que desee hacer esto solo cuando archive (y cargue a TF, por ejemplo). De lo contrario, su número de versión podría subir realmente rápido ...

En el esquema (Product / Edit Scheme / Archive / Pre-Actions) puede agregar un script que se ejecutará solo cuando archive.

Además, es posible que desee restablecer el número de compilación cada vez que incremente la versión de la aplicación.

Por último, si utiliza el archivo en su lugar, puede desactivar de forma segura:

# if [ -n "$(find "$dir" /! -path "*xcuserdata*" /! -path "*.git" -newer "$plist")" ]; then ... # else # echo "Not incrementing build number as source files have not changed" # fi

Como el número de compilación se incrementará solo cuando archive ...

EDITAR: Corrija lo que dije, las acciones previas en el archivo suceden después de la compilación (pero antes de archivar), por lo que el número de compilación se incrementará para el próximo archivo ... Pero puede crear un nuevo esquema y agregar esta acción en la compilación ( acciones) sección de este nuevo esquema. y usa este esquema cuando quieras crear una nueva construcción


Esta entrada completa fue extremadamente útil. Usé este truco pero configuré mi script como un enganche post-commit en GIT, por lo que CFBundleVersion se incrementa después de cada commit exitoso. El script de gancho entra en .git / hooks. Un registro queda en el directorio del proyecto.

Este cumple con mi criterio más básico. Quiero poder extraer una versión de GIT y reconstruir la versión exacta que tenía anteriormente. Cualquier incremento realizado durante el proceso de compilación no hace esto.

Aquí está mi script:

#!/bin/sh # # post-commit # # This script increments the CFBundleVersion for each successful commit # plist="./XYZZY/XYZZY-Info.plist" buildnum=$(/usr/libexec/Plistbuddy -c "Print CFBundleVersion" "$plist") if [ -z "$buildnum" ]; then exit 1 fi buildnumplus=$(expr $buildnum + 1) /usr/libexec/Plistbuddy -c "Set CFBundleVersion $buildnumplus" "$plist" echo $(date) "- Incremented CFBundleVersion to" $buildnumplus >> hookLog.txt


FWIW: esto es lo que estoy usando actualmente para aumentar el número de compilación solo para compilaciones de versiones (que incluyen archivado). Funciona bien bajo Xcode 5.1.

Simplemente copie / pegue el fragmento en una fase de compilación del script de ejecución directamente en Xcode:

buildnum=$(/usr/libexec/PlistBuddy -c "Print :CFBundleVersion" "$PRODUCT_SETTINGS_PATH") if [ "$CONFIGURATION" = "Release" ]; then buildnum=$((buildnum + 1)) echo "Build number updated to $buildnum" /usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildnum" "$PRODUCT_SETTINGS_PATH" fi;


Gracias por el guion. Funciona muy bien.

My Info.plist está en un subdirectorio con un nombre que contiene espacios, así que tuve que modificar el script de ejecución con comillas alrededor de la ruta plist:

${PROJECT_DIR}/tools/bump_build_number.sh "${PROJECT_DIR}/${INFOPLIST_FILE}"

y el script de shell de la misma manera con comillas alrededor de todas las rutas:

#!/bin/sh if [ $# -ne 1 ]; then echo usage: $0 plist-file exit 1 fi plist=$1 dir=$(dirname "$plist") # Only increment the build number if source files have changed if [ -n "$(find "$dir" /! -path "*xcuserdata*" /! -path "*.git" -newer "$plist")" ]; then buildnum=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$plist") if [ -z "$buildnum" ]; then echo "No build number in $plist" exit 2 fi buildnum=$(expr $buildnum + 1) /usr/libexec/Plistbuddy -c "Set CFBundleVersion $buildnum" "$plist" echo "Incremented build number to $buildnum" else echo "Not incrementing build number as source files have not changed" fi


He utilizado este glist es increíble y funciona como se esperaba. https://gist.github.com/sekati/3172554 (todo el crédito va al autor original)

Sctipts que modifiqué a lo largo del tiempo.

xcode-versionString-generator.sh ,

xcode-build-number-generator.sh

Como estas ideas están ayudando a la comunidad dev. Pensé en hacer el proyecto Github fuera de él. Así que vamos a desarrollarlo bien. Aquí está el proyecto github: https://github.com/alokc83/Xcode-build-and-version-generator

He actualizado el código para ambos script poco de mejora. en lugar de usar a continuación, toma lo último de github

Para la versión:

# xcode-version-bump.sh # @desc Auto-increment the version number (only) when a project is archived for export. # @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. Check the checkbox "Run script only when installing" # 6. Drag the "Run Script" below "Link Binaries With Libraries" # 7. Insure your starting version number is in SemVer format (e.g. 1.0.0) # This splits a two-decimal version string, such as "0.45.123", allowing us to increment the third position. VERSIONNUM=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "${PROJECT_DIR}/${INFOPLIST_FILE}") NEWSUBVERSION=`echo $VERSIONNUM | awk -F "." ''{print $3}''` NEWSUBVERSION=$(($NEWSUBVERSION + 1)) NEWVERSIONSTRING=`echo $VERSIONNUM | awk -F "." ''{print $1 "." $2 ".''$NEWSUBVERSION''" }''` /usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString $NEWVERSIONSTRING" "${PROJECT_DIR}/${INFOPLIST_FILE}"

Para la construcción:

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


Me he equivocado con muchas de las respuestas sobre esta pregunta, y ninguna de ellas me satisfizo. Sin embargo, finalmente se me ocurrió una mezcla que realmente me gusta.

Hay dos pasos, uno al comienzo y uno al final de las fases de construcción.

Al principio:

# Set the build number to the count of Git commits buildNumber=$(git rev-list HEAD | wc -l | tr -d '' '') /usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "${PROJECT_DIR}/${INFOPLIST_FILE}"

Al final:

# Set the build number to "DEVELOPMENT" /usr/libexec/PlistBuddy -c "Set :CFBundleVersion DEVELOPMENT" "${PROJECT_DIR}/${INFOPLIST_FILE}"

Si observa Info.plist en Xcode, verá que el número de versión es "DEVELOPMENT", pero la aplicación creada tendrá un número de construcción en constante aumento. (Siempre y cuando siempre haga sus compilaciones desde la misma rama).

Volver a establecer el número de versión en una cadena constante evita que el archivo Info.plist se modifique al compilar la aplicación.

Por qué me gusta este método:

  • Fácil
  • No contamina el historial de versiones de Git
  • CFBundleVersion es totalmente automático
  • El bonito número de versión se puede modificar cuando lo desee

No sé cuál es la mejor opción, pero publicaré la respuesta de Apple por si acaso alguien la está buscando ...

De acuerdo con esta publicación de preguntas y respuestas de Apple :

Automatizar versión y compilar números usando agvtool

Las claves numéricas de versión y compilación especifican respectivamente el marketing y las versiones internas de su aplicación. agvtool es una herramienta de línea de comandos que le permite incrementar automáticamente estos números al siguiente número más alto o a un número específico.

El número de compilación identifica una versión no lanzada o lanzada de su aplicación. Se almacena en Info.plist de su aplicación como CFBundleVersion (versión del paquete).

Debe completar los siguientes pasos en su proyecto de Xcode:

  1. Habilitar agvtool

Navegue hasta el panel Configuración de compilación de su destino y luego actualícelo para todas sus configuraciones de compilación de la siguiente manera:

  • Establezca la Versión del proyecto actual a un valor de su elección.

Su archivo de datos del proyecto Xcode, project.pbxproj, incluye una configuración de construcción CURRENT_PROJECT_VERSION (Versión actual del proyecto), que especifica la versión actual de su proyecto. agvtool busca project.pbxproj para CURRENT_PROJECT_VERSION . Continúa ejecutándose si CURRENT_PROJECT_VERSION existe y se detiene, de lo contrario. Su valor se usa para actualizar el número de compilación.

  • Establezca el sistema de versiones en Apple Generic.

Por defecto, Xcode no usa ningún sistema de control de versiones. Configurar el sistema de versiones en Apple Generic garantiza que Xcode incluya toda la información de la versión generada por Agvtool en su proyecto.

  1. Configura tu versión y construye números

agvtool busca Info.plist de su aplicación para su versión y números de compilación. Los actualiza si existen y no hace nada, de lo contrario. Asegúrese de que las CFBundleVersion (versión Bundle) y CFBundleShortVersionString ( CFBundleShortVersionString Bundle versions string, short) existan en su Info.plist como se ve en la siguiente imagen:

Salga de Xcode, luego navegue hasta el directorio que contiene su archivo de proyecto .xcodeproj en la aplicación Terminal antes de ejecutar cualquiera de los siguientes comandos. El archivo de proyecto .xcodeproj contiene project.pbxproj, que es usado por agvtool. (Esta es la parte que puede ejecutar en un script en lugar de hacerlo en la línea de comandos).

Actualización del número de versión

Para actualizar el número de versión a una versión específica, ejecuta

xcrun agvtool new-marketing-version <your_specific_version>

Ejemplo: actualice el número de versión a 2.0

xcrun agvtool new-marketing-version 2.0

Actualización del número de compilación

Para incrementar automáticamente tu número de compilación, ejecuta

xcrun agvtool next-version -all

Para establecer el número de compilación de su aplicación a una versión específica, ejecute

xcrun agvtool new-version -all <your_specific_version>

Ejemplo: establezca el número de compilación en 2.6.9

xcrun agvtool new-version -all 2.6.9

Prima:

Para ver el número de versión actual, ejecuta

xcrun agvtool what-marketing-version

Para ver el número de compilación actual, ejecuta

xcrun agvtool what-version


Podría usar las versiones genéricas de Apple . Básicamente, todo lo que tiene que hacer es llamar a agvtool next-version -all desde el directorio que aloja su archivo .xcproj. Para obtener más detalles, consulte la url anterior.


Probé el procedimiento modificado y no funcionó, porque:

  1. Xcode 4.2.1 cambia el subdirectorio xcuserdata en .xcodeproj

  2. git toma nota del cambio anterior en Project-Info.plist

La siguiente modificación hace que se ignoren y solo señala cambios genuinos: -

if [ -n "$(find $dir /! -path "*xcuserdata*" /! -path "*.git" -newer $plist)" ]; then


Si entiendo su pregunta correctamente, ¿desea modificar el archivo Project-Info.plist , que forma parte de la plantilla de proyecto estándar de Xcode?

La razón por la que pregunto esto es que Project-Info.plist normalmente está bajo control de versión, y modificarlo significa que se marcará como, bueno, modificado.

Si eso le parece bien, el siguiente fragmento actualizará el número de compilación y marcará el archivo como modificado en el proceso, donde get_build_number es una secuencia de comandos para obtener el número de compilación (posiblemente incrementado) que desea usar:

#!/bin/sh # get_build_number is a placeholder for your script to get the latest build number build_number = `get_build_number` /usr/libexec/PlistBuddy -c "Set :CFBundleVersion ${build_number}" ProjDir/Project-Info.plist

PlistBuddy te permite configurar cualquier clave en un archivo plist, no solo el número de versión. Puede crear todos los archivos plist que desee e incluirlos en los recursos si es necesario. Luego se pueden leer desde el paquete.

En cuanto a su necesidad de mostrar la versión en el panel Acerca de y en otros lugares, también puede buscar en la configuración de CFBundleGetInfoString y CFBundleShortVersionString .


Sobre la base de la solución de Wil Gieseler , solo tenía un cambio que quería hacer. Su solución coloca el recuento de commit de git en el número de compilación. Es útil, pero todavía es un poco doloroso encontrar el compromiso real que creó esa compilación. No me importaba demasiado si el número de compilación aumentaba monótonamente, por lo que descarté ese requisito para poder acceder más fácilmente a la confirmación que generaba un binario determinado.

Para ese fin, modifiqué su primer script a lo siguiente:

# Set the build number to the decimal conversion of the short version of the current git SHA # Get the short version of the current git SHA in hexadecimal SHA=$(git rev-parse --short @) # Uppercase any alphabetic chars in SHA (bc doesn''t like lowercase hex numbers) UPPERCASE_SHA=$(tr ''[:lower:]'' ''[:upper:]'' <<< "$SHA") # Use bc to convert the uppercase SHA from hex to decimal BUILD_NUM=$(bc <<< "ibase=16;obase=A;$UPPERCASE_SHA") # Set our build number to that /usr/libexec/PlistBuddy -c "Set :CFBundleVersion $BUILD_NUM" "${PROJECT_DIR}/${INFOPLIST_FILE}" # To convert a build number back to a usable git SHA, run the following, substituting the build number for <build number> # bc <<< "ibase=10;obase=16;<build number>"

Esto convierte la versión corta del git SHA actual en decimal. Los caracteres hexadecimales no funcionan bien con los requisitos de número de compilación de Apple, por lo que tuve que hacer esto. Para convertirlo de nuevo, simplemente ejecutaría algo como esto:

SHA=$(bc <<< "ibase=10;obase=16;<build number>")

en bash, donde <build number> es el número de compilación que obtuviste de un binario. Luego, solo ejecute git checkout $SHA , y listo.

Debido a que esta es una adaptación de la solución de Wil Gieseler , como se mencionó anteriormente, también necesitará el siguiente script de creación posterior:

# Set the build number to "DEVELOPMENT" /usr/libexec/PlistBuddy -c "Set :CFBundleVersion DEVELOPMENT" "${PROJECT_DIR}/${INFOPLIST_FILE}"

que mantiene limpio tu historial de git.


Un problema con algunas de estas soluciones es que Launch Services solo reconoce cuatro cinco dígitos principales en la versión del paquete . Tengo un proyecto con un número de compilación de miles, así que quería usar algunos de los dígitos menos significativos.

Esta secuencia de comandos de Perl incrementa todas las listas de información en el proyecto, no solo la del objetivo actual, por lo que los números de compilación permanecen al mismo paso. También utiliza un dígito de parche y dos dígitos menores, por lo que la versión 1234 tiene la versión 1.23.4. Lo uso como un comportamiento previo a la compilación, por lo que se aplica a todos los proyectos que construyo.

El guión es bastante brutal, pero funciona para mí.

#!/usr/bin/perl use strict; use warnings; use v5.12.0; use Dir::Iterate; for my $plist_file(grepdir { /-Info.plist$/ } ''.'') { my $build = `/usr/libexec/PlistBuddy -c "Print CFBundleVersion" ''$plist_file''`; chomp $build; next unless $build; # Strip dots $build =~ s//.//g; $build =~ s/^0//g; # Increment $build++; # Re-insert dots $build =~ s/^(/d{0,4}?) (/d{0,2}?) (/d{0,1}?)$/$1.$2.$3/x; # Insert zeroes $build =~ s{(^|/.)/.}{${1}0.}g; system qq(/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $build" ''$plist_file''); }


Utilizo la última revisión de SVN para el número de compilación. Si cambia Info.plist en el directorio de compilación, no afectará a la fuente Info.plist:

# use the last SVN revision as the build number: Info_plist="$BUILT_PRODUCTS_DIR/$CONTENTS_FOLDER_PATH/Info.plist" defaults write "${Info_plist}" CFBundleVersion `svn stat -u | awk ''/''"Status against revision:"''/ {print $4}''`


Yo recomendaría el uso de la autorevision .

Xcode permite un archivo de encabezado (que se puede generar automáticamente en el momento de la compilación y no en el propio vcs) para proporcionar valores que se expandirán en el info.plist en el momento de la compilación. Puede encontrar un tutorial para configurarlo en el sitio web de autorrevisión .

Autorevision tiene un tipo de salida adaptado a estos tipos de archivos de encabezado para ayudar en estas situaciones exactamente.