2012-05-31 7 views
8

Contexto: Mi proyecto contiene dos servidores backend, uno para desarrollo y otro para producción. Cada vez que hago una estructura de control de calidad, voy a tener que poner el servidor que la construcción está en el TestFlight (esto es normal). Pero en mi lista de archivos en Xcode, obtengo fácilmente más de 100 archivos donde los tengo que poner manualmente si fue prod o servidor de desarrollo.Xcode: generación de un comentario automático en el archivo

El principal problema aquí es que el control de calidad tiene que revertir a una versión específica de un servidor específico.

Pregunta: ¿Hay alguna manera automática de poner un comentario en el archivo durante la construcción? me gustaría poner algo como:

[Número de compilación] - [Dev | Live] Servidor

Gracias

+1

Utilice un sistema de integración continua como p. Ej. [Jenkins] (http://jenkins-ci.org/) para tales tareas. – Till

+0

Como mencionó @Till, terminé usando Jenkins con múltiples esquemas. –

Respuesta

1

Nosotros usamos el siguiente comando para agregar un comentario al archivo directamente después de la construcción (xcodebuild):

/usr/libexec/PlistBuddy -c "Add :Comment string \"your comment goes here\"" "$ARCHIVE_DIR/Info.plist" 

con $ archive_dir ser el directorio para el archivo en cuestión, e. g .:

ARCHIVE_DIR=`ls -dt1 $HOME/Library/Developer/Xcode/Archives/*/*.xcarchive |head -n1` 
1

Intenté la idea de Norman pero no pude conseguir que la sintaxis funcionara. Al final he utilizado:

ARCHIVE_DIR=$(ls -dt1 $HOME/Library/Developer/Xcode/Archives/*/*.xcarchive/Info.plist |head -n1) 
/usr/libexec/PlistBuddy -c "Add :Comment string \"your comment goes here\"" "$ARCHIVE_DIR" 
+0

Esto funciona, pero si tiene configurado su Archivo para abrir automáticamente el Organizador, el nuevo comentario solo se refleja en la IU del Organizador una vez que reinicie Xcode. Alternativamente, puede desactivar la configuración para abrir automáticamente el Organizador. Luego, cuando abras manualmente el Organizador, la IU reflejará tu comentario insertado. – jonsibley

1

Hola basado en otras respuestas que tenía algo así:

  1. clic en el icono del proyecto seleccione "Editar Esquema ..."
  2. seleccionar "Archivo/Post-acciones"
  3. pulse "+" "acción de script nuevo del funcionamiento"
  4. Cambio "Proporcionar configuración de generación de" a
  5. deseada proyecto
  6. seleccione shell
  7. pasta (se utiliza el supuesto de que GIT) este script:
cd "$PROJECT_FILE_PATH" 
BRANCH=$(basename `git describe --all`) 
COMMIT_HASH=$(git rev-parse HEAD | awk '{print substr($0,0,7)}') 
ARCHIVE_PATH=$(dirname "$ARCHIVE_PRODUCTS_PATH") 
ARCHIVE_NAME=${ARCHIVE_PATH}/Info.plist 
DEST_DIR="<desired destination path>" 

/usr/libexec/PlistBuddy -c "Add :Comment string \"${BRANCH}_${COMMIT_HASH}\"" "$ARCHIVE_NAME" 

if [ -d "$DEST_DIR" ]; then 
    PACKAGE_NAME=$DEST_DIR/${BRANCH}_${COMMIT_HASH}_${PRODUCT_NAME} 

    xcodebuild -sdk $SDKROOT -archivePath "$ARCHIVE_PATH" -exportPath "$PACKAGE_NAME" -exportFormat ipa -exportArchive -exportProvisioningProfile "your provisioning profile name" 
fi 

ventaja sobre otra solución es ese archivo se localiza sobre la base de variables XCode no se basa en la búsqueda (sobrecarga innecesaria).

1

encontrado este antiguo puesto tras Google, y estaba muy molesto por el problema de actualización de organizador, y sólo tenía una idea muy feo. De hecho, el organizador se actualiza automáticamente sobre las actualizaciones de FS.

así que he acaba de intentar mover archivos después de la actualización de su plist, a continuación, se mueve de nuevo a su posición inicial. Algo como esto:

ARCHIVE_PATH=$(dirname "$ARCHIVE_PRODUCTS_PATH") 
ARCHIVE_PLIST=${ARCHIVE_PATH}/Info.plist 

/usr/libexec/PlistBuddy -c "Add :Comment string \"your comment goes here\"" "$ARCHIVE_PLIST" 

mv "$ARCHIVE_PATH" "$ARCHIVE_PATH"_TMP 
sleep 1 
mv "$ARCHIVE_PATH"_TMP "$ARCHIVE_PATH" 

El sueño es necesario dejar que el contenido de la carpeta OS X de actualización. Verá que el archivo desaparece y luego vuelve a aparecer.

Espero que ayude.

Cuestiones relacionadas