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).
También estoy buscando algo como esto. ¿Encontraste alguna solución? –