2010-11-10 17 views
10

Frecuentemente encuentro que necesito tener una compilación en mi iPhone que es mi versión 'demo-ready' que podría apuntar a mi servidor de demostración. También quiero una compilación que sea la compilación de depuración más reciente y mejor que estoy desarrollando con eso apunta a mi servidor de desarrollo. ¿Alguien ha encontrado una forma muy sencilla de instalar dos aplicaciones que quizás son exactamente el mismo código pero apuntan a diferentes servidores? Alternativamente, ¿tal vez tendría una aplicación que tenía algunas versiones detrás de la última versión? De preferencia, usaría el mismo proyecto de XCode para compilar e instalar en el iPhone.¿Cuál es la mejor forma de usar XCode para instalar varias compilaciones de la misma aplicación iOS en su iPhone?

Respuesta

9

Puede agregar configuraciones de compilación especiales para cada una de las cuales use un archivo info.plist diferente. Entonces, tal vez para su demostración, tiene una info.plist llamada MyApp-Info-DEMO.plist y MyApp-Info.plist para la versión.

Luego puede agregar su variable de servidor como una variable info.plist y buscarla cuando se inicie la aplicación. O simplemente cree una sentencia DEFINE en su nueva configuración que sea similar a SERVER = demo.myserver.com para la demostración y SERVER = production.myserver.com para la versión en vivo.

La parte más importante es cambiar CFBundleIdentifier en el nuevo info.plist. Entonces, en su demo, podría nombrar algo como com.mycompany.myapp.DEMO y el verdadero podría ser com.mycompany.myapp.

Esto permitirá que ambas versiones aparezcan en el teléfono al mismo tiempo (los diferentes CFBundleIdentifiers). Solo recuerde, si usa compras en la aplicación o notificaciones push del servidor, no podrá hacer esto sin un perfil separado y específico para su identificador de aplicación real y su demo.

+5

En lugar de archivos separados, también puede usar '$ (BUNDLE_IDENTIFIER)' en su archivo Info.plist, luego establecer su valor como una Configuración de compilación definida por el usuario. – benzado

1

Con la versión actual de Xcode, lograría esto cambiando el archivo Info.plist de la aplicación para usar un identificador de paquete diferente (y posiblemente también cambie el nombre del producto de la aplicación en la configuración de compilación).

La próxima versión de Xcode, por lo que he leído en la documentación preliminar, tiene una función que puede simplificar lo que quiere hacer bastante. Sin embargo, dado que el software de prelanzamiento está cubierto por NDA, no puedo darle ningún detalle.

2

Puede crear 2 objetivos diferentes con 2 info.plists diferentes y 2 preprocesadores diferentes (en la configuración de compilación para cada uno de los 2 objetivos). Entonces ifdef en el preprocesador define para seleccionar la constante del servidor que el compilador usa para cada objetivo.

Luego, haga que el nombre del producto y el ID del paquete sean diferentes en las dos configuraciones de destino diferentes (para que ni el dispositivo ni el Simulador confundan los dos paquetes de aplicaciones).

Cuestiones relacionadas