2011-01-01 15 views
5

Estoy desarrollando una aplicación para iPad y recientemente agregué algunas configuraciones (como un interruptor de modo de depuración y un interruptor de contador FPS) a la página de la aplicación en Settings.app para facilitar la vida de los probadores de aplicaciones. Por supuesto, no quiero mantener estas configuraciones allí en la versión final. ¿Hay alguna manera de ocultar algunas configuraciones en Settings.bundle en la versión lanzada, pero muéstrelas en la versión de depuración? O, alternativamente, ¿hay alguna forma de utilizar condicionalmente un conjunto de Settings.bundle diferente en el destino de mi aplicación, dependiendo de si estoy usando la versión o la configuración de depuración para compilar la aplicación?¿Configuraciones de aplicaciones de iOS diferentes en la configuración de depuración/liberación?

Respuesta

3

Puede, en la configuración de compilación del proyecto, definir una macro de preprocesador C específica para cada configuración. Por ejemplo, tengo -DDEBUG en la configuración de depuración, que define la macro DEBUG. Entonces, el código puede compilarse condicionalmente con #ifdef DEBUG ... #endif.

Además, el archivo Info.plist se puede preprocesar.

+0

Al final, decidí agregar una fase de compilación Run Script al destino que preprocesa el archivo Info.plist. Puedo obtener el nombre de la configuración de las variables de entorno y usar eso para decidir qué partes del archivo Info.plist deben incluirse/excluirse. Voy a publicar una solución completa aquí una vez que lo resolví correctamente. –

+1

El preprocesamiento de Info.plist es parte de las capacidades oficiales de XCode (consulte http://www.leegillen.com/Public/Blog/Entries/2008/6/26_How_to_have_a_target_or_build_configuration_specific_Info.plist.html) –

6

yo se que esto tarde, pero esto puede ayudar a otras personas

Esto es cómo resolví mismo problema

  • Crear archivo de 2 Root.plist uno para depuración y uno para la liberación.
  • Agregue este script de ejecución en su proceso de compilación.
 

if [ "$CONFIGURATION" == "Debug" ];then 
    rm -f "$SRCROOT/Settings.bundle/Root.plist" 
    cp "$SRCROOT/Debug/Root.plist" "$SRCROOT/Settings.bundle" 
else 
    rm -f "$SRCROOT/Settings.bundle/Root.plist" 
    cp "$SRCROOT/Release/Root.plist" "$SRCROOT/Settings.bundle" 
 
-3

que acaba de regresar de la página web de MS. MS no admite el archivo de configuración múltiple. Por lo tanto, si su cadena de conexión se encuentra en app.config, Debe ejecutar una tarea de cliente o batear para cambiar dos app.config.

+0

Tengo problemas para entender cómo responde esto al pregunta. – laalto

Cuestiones relacionadas