2011-09-09 12 views
9

Estoy usando xcodebuild dentro de una secuencia de comandos bash en un servidor de integración continua.¿Cómo obtener el valor de retorno de xcodebuild?

Me gustaría saber cuándo una construcción ha fallado en el script, por lo que puedo salir prematuramente y marcar la compilación como fallida.

xcodebuild muestra un mensaje BUILD FAILED en la consola, pero no logro obtener un valor de retorno.

¿Cómo puedo lograrlo?

Gracias de antemano

Respuesta

7

que resuelven mi problema con este comando: xcodebuild -... || exit 1

+0

Esta es la respuesta más clara. thnx Mike;) – MQoder

8

Puedes usar "$?" variable para obtener el código de retorno del comando anterior.

xcodebuild -... 
if [[$? == 0]]; then 
    echo "Success" 
else 
    echo "Failed" 
fi 
11

xcodebuild siempre devuelve 0, independientemente del resultado de la prueba real. Debe verificar ** BUILD FAILED ** o ** BUILD SUCCEEDED ** en la salida para saber si las pruebas pasan o no.

+1

¿Cómo exactamente podemos verificar esos estados? No son como los códigos de salida AFAIK – erenkabakci

4

xcodebuild puede devolver cualquiera de los códigos de error de la lista here y no se limita a EX_OK (o int 0).

Sin embargo, aprendí de la solución proporcionada por Dmitry y modificada de la siguiente manera. Funciona para mí y espero que pueda ser útil.

xcodebuild -project ...... 
    if test $? -eq 0 
    then 
     echo "Success" 
    else 
     echo "Failed" 
    fi 
2

Quizás no sea porque xcodebuild no devuelve un valor distinto de cero cuando la compilación falló. El script de shell que continúa ejecutándose independientemente de la línea de error de retorno puede ser el resultado de que no ejecutó el script con la opción "-e".

Pruebe poner #!/Bin/bash -e delante del archivo de script.

-1

Si el producto compilado (archivo .a o .ipa) existe

Cuestiones relacionadas