2011-09-27 14 views
9

Estoy investigando el mejor enfoque para automatizar nuestro proceso de construcción. Tengo mis propias ideas (a través de la experiencia en un proyecto anterior que no es de iOS) pero necesito buenos argumentos a favor y en contra de varias posibilidades.¿La mejor estrategia para automatizar compilaciones múltiples desde un único proyecto xcode de etiqueta blanca?

Objetivo: Un proyecto de xcode único con un solo objetivo (piense en una etiqueta blanca) debe construirse en 1..N diferentes sabores (marcas concretas) con una mínima interacción del usuario y un conocimiento técnico mínimo. Para AdHoc y/o AppStore.

Básicamente, eso significará especificar por compilación; una carpeta que contiene Icons + Splashscreen, un paquete que contiene recursos específicos de la marca y (¿presumiblemente?) Info.plist, especificando el nombre de aplicación, ID de paquete, etc.

Problemas que deben respetarse o aclararse;

  • manual de construcción de una sola marca a través de interfaz gráfica de usuario a prueba de idiotas (elija un git rama/etiqueta, especifique una determinada marca, configurar la aplicación, por ejemplo habilitado para IAP, servidor de dominio, etc - se escribirá en el info.plist)
  • En pruebas manuales previas, estableciendo el nombre del ejecutable en , el plist no funcionó? Lo sentimos, hemos olvidado el problema exacto ... quizás era solo un problema de buildconfig Xcode Debug, no relevante para una compilación de distribución?
  • ¿Firma de código?!? ¿Se puede especificar el perfil sobre la marcha? Algunas marcas deben construirse con el perfil propio del cliente .

Mi sensación personal: Hudson o CruiseControl + Xcode.

Parece que hay una gran cantidad de documentación para una solución de Xcode y he visto esto en acción en un proyecto de Flex en el que trabajé, con casi los mismos requisitos de marca blanca/marca. Por supuesto que estaba usando el script Ant pero no había ninguna configuración de comportamiento que respetar. Esa es mi única incertidumbre aquí ... Sospecho que tendría que estar codificado en alguna parte, pero esa no es la respuesta que va a agradar a algunas personas. Se desea poder especificar las diversas configuraciones de app-config (url del servidor, es la función compatible con Foo, se muestra la vista X, etc., etc.) a través de un formulario GUI, cuando se compila manualmente. No estoy seguro de lo fácil que sería meterlo en una configuración típica de Hudson o CC.

Y, por tanto, una sugerencia que se ha hecho es escribir una aplicación OSX para construir nuestros clientes. La teoría es que, la interfaz de usuario limpia y no tecnológica para ingresar todos los metadatos necesarios & configuración de la aplicación y un gran botón verde brillante etiquetado como "Crear". Pero personalmente soy escéptico de que este enfoque sea más flexible o más fácil de implementar que una solución clásica de CI.

Así que la pregunta es básicamente, qué es preferible; un enfoque clásico basado en servidor, control de versiones integrado, CI o una utilidad OSX personalizada?

Sea lo que sea que vayamos, seguramente será un requisito para ponerlo en funcionamiento en 2 o 3 días (sin duda, menos de una semana).

+1

También estoy buscando algo como esto. ¿Encontraste alguna solución? –

Respuesta

0

En mi humilde opinión, puede resolver todos los problemas utilizando diferentes objetivos de XCode.

Cada objetivo compartir el código pero podría hacerlo:

  • firmará con diferent Perfiles
  • uso diferent plist: esto implica tener diferentes nombres .. imágenes
  • uso diferent marca. Solo debe nombrar la imagen con el mismo nombre y seleccionar el objetivo correcto en el inspector de archivos.
  • Compilación con un clic en XCode.

espero que esto ayude a

0

Una muy tarde el medio, pero el enfoque que tomaría sería la creación de la etiqueta IPA blanco, y luego crear una secuencia de comandos para: 1. descomprimirlo (cambiar el. extensión de archivo ipa a .zip). 2. Cambiar activos. Actualice el info.plist (utilizando el comando Plistbuddy) Vuelva a bloquearlo. Renuncia el código.

Ver este guión como punto de partida: https://gist.github.com/catmac/1682965

+0

Si solo tiene unos pocos proyectos de etiqueta blanca, puede tomar el enfoque mencionado en cualquier otro lugar creando un nuevo objetivo cada vez. Sin embargo, esto puede ser difícil de manejar con un gran número de objetivos. – Ronan

0

respuesta muy tarde. Pero iría con diferentes archivos .xcconfig y esquemas múltiples. Los nombres de esquema podrían ser una combinación de target/brand.

Cuestiones relacionadas