Pregunta

Después de usar Hudson para la 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 un hombre ha tenido éxito usando el control de crucero combinado con la herramienta CLI de xcodebuild . ¿Alguien aquí 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 conclusiones.

¿Fue útil?

Solución

Estoy usando con éxito Hudson en el mac con xcodebuild. Con el lanzamiento del 3.0 iPhone sdk, usted tiene un control competitivo sobre el destino, la configuración y el SDK contra los cuales se construirá el proyecto.

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

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

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

la distribución de aplicaciones para iPhone es fácil

Otros consejos

Resucitando este hilo. No encontré una solución satisfactoria para obtener compilaciones XCode automatizadas con pruebas unitarias en un servidor de compilación, así que hice una investigación y codificación. El resultado es esta publicación de blog explicando todo y este script Ruby que convierte la salida OCUnit de xcodebuild al formato XML que JUnit usa para los informes de pruebas . 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.

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

Apple acaba de lanzar (10 de junio de 2013) para OSX Mavericks (OS X 10.9) una nueva plataforma de integración continua que es la solución de integración continua más integrada que he visto antes. Está disponible en developer.apple.com, aquí en esta página tiene los detalles:

https://developer.apple.com/library / ios / documentation / IDE / Conceptual / xcode_guide-continuous_integration /

Recomiendo ver la presentación de wwdc 2013 sobre el tema.

He utilizado CruiseControl con Xcode (similar a lo que sugiere Pragmatic Automation) y tuve un éxito razonable. También estoy muy familiarizado con CruiseControl y es una configuración de formato de configuración relativamente horrible.

También utilicé BuildBot con buenos resultados, pero descubrí que sus fortalezas no se ajustaban realmente a mis necesidades (esclavos distribuidos construyendo e informando en múltiples sistemas diferentes). Configurar configuraciones de buildbot puede ser un arte en sí mismo, aunque no es difícil. Esencialmente se trata de escribir scripts en python.

Dado que Hudson está disponible, lo recomendaría como una vía para ejecutar la 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 soporta. Puede invocar compilaciones controladas por línea de comandos con bastante facilidad y muy obviamente. Dicho esto, no he configurado una instancia utilizando Hudson y Xcode, donde la tengo para los otros sistemas, por lo que esto es una especulación parcial de mi parte.

Creo que todavía deberías poder usar Hudson. Hudson es muy flexible y también le permite usar scripts de shell para compilar: Scripts de shell y comandos por lotes de Windows

Simplemente ingrese allí xcodebuild. Eche un vistazo a la página del manual de xcodebuild para ver las opciones de xcodebuild.

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

Jenkins parece funcionar bien para algunas personas. (Aunque, nunca he usado ningún servidor de CI antes).

https://wiki.jenkins-ci.org/display/JENKINS/ Xcode + Plugin

Jenkins funciona bien. Puede crear 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 tienes que 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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top