2012-09-11 14 views

Respuesta

24

Así es como me Valor mínimo de números de compilación:

En el destino> pestaña Resumen, establezca la construcción inicial # enter image description here

después utilizar esta secuencia de comandos para incrementar el número de compilación:

#!/bin/bash 
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE") 
buildNumber=$(($buildNumber + 1)) 
buildNumber=$(printf "%04d" $buildNumber) 
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE" 

o si desea construir números en hexadecimal:

#!/bin/bash 
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE") 
buildNumber=$((0x$buildNumber)) 
buildNumber=$(($buildNumber + 1)) 
buildNumber=$(printf "%04X" $buildNumber) 
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE" 
+0

Gracias ... tal vez ese fue el problema que inicialmente configuré construir en 1.1.0.0 porque pensé que así era como se formateaban las versiones de compilación, hacerlo sin decimales parece funcionar, pero ahora la compilación es de un solo dígito. ¿Cómo puedo convertirlo en un formato de número de compilación de 4 dígitos? – ourmanflint

+0

@ourmanflint Creo que los fragmentos anteriores deberían darle un número de compilación de cuatro dígitos ('% 04d' y'% 04X') o ¿quiere decir un número de cuatro dígitos como 1.1.0.0? Depende de si desea incrementar los números de compilación 'CFBundleVersion', los números de versión' CFBundleShortVersionString' o ambos. – FluffulousChimp

+4

Esa línea buildNumber = $ ((0x $ buildNumber)) debe eliminarse ya que convierte en hexadecimal un número decimal. –

0

Y si utiliza Jenkins puede utilizar el Jenkins número de compilación

/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $BUILD_NUMBER" "$INFOPLIST_FILE"; 
+0

Intenté esto pero no funciona. ¿Me estoy perdiendo de algo? El número de compilación en plist es siempre 1, el número de compilación en jenkins es 60 – tiltem

+0

Además de la ruta a tu Plist que podría estar equivocada, solo puedo imaginar que tal vez el Plist original necesite una entrada ficticia 'CFBundleVersion' para que PlistBuddy pueda encontrar y reemplazar eso. – Rivera

2

Mi solución es la siguiente:

#!/bin/bash 
buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE") 
buildNumber=$(echo $buildNumber | sed 's/0*//') 
buildNumber=$(($buildNumber + 1)) 
buildNumber=$(printf "%04d" $buildNumber) 
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$INFOPLIST_FILE" 

usando sed para eliminar los ceros iniciales, incrementando el valor y la impresión de nuevo en el archivo plist con un número de cuatro dígitos cero.

+0

Este funciona para mí (aplicación Mac, 10.9) mientras que el de NSBum no ... –

+0

Retira eso ... después de '000A', vuelve a' 0001' !! –

+1

No hay 000A ya que solo imprime el número. Puedo asegurarle que esto funciona a la perfección ya que ahora estoy en el número de compilación 2923 y comencé desde 0. Después de 0009 va a 0010. Después de 9999 va a 10000. Verifique que está * realmente * usando mi código. –

Cuestiones relacionadas