2010-12-29 4 views
6

Tengo una secuencia de comandos que realiza algún preprocesamiento antes de la construcción real en Xcode. ¿Hay alguna manera de saber cuándo Xcode está haciendo una "compilación y archivo"? Quiero hacer un "svn commit" como parte del paso de archivo. Descarté las variables de entorno que están allí durante una compilación, pero se ven iguales para un archivo como una compilación normal.¿Cómo saber si Xcode está haciendo una "compilación y archivo" en un script?

¿Algo más que pueda verificarse para saber si está construyendo un archivo?

¿Alguna otra forma de hacer una confirmación automáticamente antes de compilar el archivo? No quiero hacer un commit para cada compilación, ya que esto hace que el árbol svn sea más difícil de navegar por IMO.

Estoy usando Xcode 3.2.5.

Gracias! Norma

Respuesta

0

Te recomiendo que obtengas un sistema de compilación diario con script independiente de Xcode GUI. Esto hará que solo svn commit active la compilación, el archivo y la distribución. Puede ejecutar Construir y Archivo con xcrun comando como se describe aquí:

Xcode "Build and Archive" from command line

+0

Creo que esa puede ser la ruta que debo tomar. Otra opción es usar una configuración diferente para cuando quiero hacer un archivo. Todavía confío en que elija la configuración correcta, pero Xcode todavía podría hacer el trabajo. – TejasSoft

2

que quería evitar la acumulación de línea de comandos y el archivo desde que leí que no construye un archivo .ipa con el perfil incrustado aprovisionamiento en eso. Usar eso hace que enviarlo a los evaluadores sea mucho más fácil.

lo que hice fue lo siguiente:

tengo 4 configuraciones. Debug, Release, Ad Hoc Release y App Store Release.

Uso Debug and Release para compilar sin realizar una confirmación. Utilizo el Ad Hoc cuando deseo enviarlo a los beta testers, y la App Store para las pruebas finales y la presentación en App Store.

Aquí está el código que agregué a mi script de precompilación.

# Get the version number from the .plist file 
VER_NUM=`cat "${SRCROOT}/${INFOPLIST_FILE}" | grep -A 1 CFBundleVersion | grep string | sed 's/]*>//g' | sed 's/^[ ]*//'` 

# Check build type to see if svn commit should be done 
if [ "${BUILD_STYLE}" == "App Store Distribution" ] 
then 
SVN_COMMIT=yes 
fi 

if [ "${BUILD_STYLE}" == "Ad Hoc Distribution" ] 
then 
SVN_COMMIT=yes 
fi 

if [ "${SVN_COMMIT}" == "yes" ] 
then 
echo "Commiting the project to SVN" 
BUILD_TIME=`date` 
svn commit -m "\"Version ${VER_NUM} for ${BUILD_STYLE} ${BUILD_TIME}\"" 
fi 

Esta fue mi respuesta rápida y sucia al problema. Tiene que haber una solución más elegante, pero esto funcionará por ahora. Si Apple acaba de agregar una variable de entorno para mostrar que es una compilación de archivo que lo resolvería.

Cuestiones relacionadas