iphone xcode continuous-integration cruisecontrol xcodebuild

iphone - ¿Integración continua para proyectos de Xcode?



continuous-integration cruisecontrol (9)

Después de usar Hudson para una integración continua con un proyecto anterior, quiero configurar un servidor de integración continua para los proyectos de iPhone en los que estoy trabajando ahora. Después de investigar un poco, parece que no hay ningún motor de CI diseñado específicamente para Xcode, pero uno de ellos ha tenido éxito al usar Cruise Control combinado con la herramienta CLI de xcodebuild . ¿Alguien ha intentado esto? ¿Hay algún motor de CI que funcione bien con los proyectos de Xcode?

Probablemente voy a probar Cruise Control. Publicaré una respuesta con mis hallazgos.


Adium está utilizando buildbot con Xcode con bastante eficacia. Escribimos un archivo make simple que llama a xcodebuild con los objetivos y configuraciones adecuados, pero estoy bastante seguro de que es opcional.


Creo que todavía deberías poder usar Hudson. Hudson es muy flexible y le permite usar scripts de shell para construir: scripts de shell y comandos de lote de Windows

Solo ingresa allí xcodebuild. Eche un vistazo a la página man de xcodebuild para ver las opciones de xcodebuild.


He usado CruiseControl con Xcode (similar a lo que Pragmatic Automation sugirió) y tuve un éxito razonable. También estoy muy familiarizado con CruiseControl y su configuración de formato de configuración es bastante horrible.

También utilicé BuildBot con buenos resultados, pero descubrí que sus puntos fuertes realmente no coincidían con mis necesidades (creación distribuida de esclavos e informes en múltiples sistemas diferentes). La configuración de las configuraciones de buildbot puede ser un arte en sí mismo, aunque no es difícil. Básicamente se trata de escribir scripts en Python.

Desde que Hudson estuvo disponible, lo recomendaría como una vía para ejecutar una integración continua. Tiene una interfaz basada en web (la principal deficiencia de CruiseControl en mi mente) y es muy flexible en los diversos sistemas que admite. Puede invocar compilaciones dirigidas por línea de comando con bastante facilidad y muy obviamente. Dicho esto, no he configurado una instancia usando Hudson y Xcode, donde tengo para los demás sistemas, por lo que esto es parcialmente especulación de mi parte.


Si no te importa vivir a la vanguardia, acabo de comprometer un constructor xcode para CruiseControl.


Resucitando este hilo. No encontré una solución satisfactoria para obtener versiones XCode automatizadas con pruebas unitarias en un servidor de compilación, así que investigué y codifiqué. El resultado es esta publicación de blog que lo explica todo y este script de Ruby que convierte la salida de OCUnit de xcodebuild al formato XML que JUnit usa para los informes de prueba. El servidor de compilación que elegí fue Hudson .

Actualización 3/2 2012: He actualizado esto para usar algunos scripts de shell personalizados para compilar y ejecutar. Disponible aquí . Es bueno no solo para la integración continua, sino también para construir desde la línea de comandos en su propia máquina.



Jenkins funciona bien. Usted puede construir su proyecto xcode escribiendo su propio script de shell y luego dejar que Jenkins lo ejecute, o también puede usar el complemento xcode.

Pero debes ser consciente del problema de la autoridad. Con pequeños ajustes en las configuraciones de Jenkins, podrá administrar su servidor de CI en muy poco tiempo.



Estoy usando Hudson con éxito en mac con xcodebuild. Con el lanzamiento de la versión 3.0 del iPhone sdk, usted puede competir por el control del objetivo, la configuración y el SDK con los que se construirá el proyecto.

Es tan simple como crear un paso de compilación en Hudson y decirle a xcodebuild que construya el proyecto:

xcodebuild -target "myAppAppStore" -configuration "DistributionAppStore" -sdk iphoneos2.1

El trabajo inicial me ha dado sus frutos ya que mis compilaciones funcionan sin ningún pensamiento adicional. He escrito una descripción detallada en mi blog si alguien está interesado.

Distribución de aplicaciones de iPhone hecha fácil