2018: la mayor reorganización en años para el lanzamiento de iOS y el proceso de CI / CD. Cómo prepararse para 2019

Enlaces originales:

En 2018, Mobile DevOps y CI / CD world se han visto sacudidos por algunos anuncios y noticias importantes. Estos anuncios son de Apple o de las comunidades de código abierto, pero seguramente cambiarán las formas tradicionales de hacer CI / CD para aplicaciones iOS. En esta publicación, miraremos hacia atrás en 2018 para mirar hacia adelante en 2019. Veremos qué ha cambiado en 2018 en Mobile DevOps y Continuous Delivery para aplicaciones iOS y cómo afectará potencialmente el lanzamiento de iOS y el proceso de CI / CD en 2019.

1. Apple + BuddyBuild

El día de año nuevo de 2018, Apple adquirió BuddyBuild y las cosas en Mobile DevOps cambian drásticamente. BuddyBuild es uno de los mejores servicios de CI / CD en la nube para aplicaciones móviles. Desde que BuddyBuild se convierte en parte de Apple, han descontinuado el soporte para aplicaciones de Android. También dejó de recibir nuevos clientes para aplicaciones iOS. Esta noticia fue una de las grandes conmociones para las empresas que utilizan el servicio BuddyBuild para Android e iOS. Estas compañías necesitan buscar otro servicio de CI / CD para las aplicaciones de Android, lo que resulta en un costoso trabajo de migración. Esta fue también una gran lección para las empresas que utilizan los servicios de CI / CD basados ​​en la nube, les hace pensar si administrar la infraestructura móvil internamente o externalizarla a otras empresas. Hemos cubierto los pros y los contras de administrar la infraestructura de DevOps móvil internamente aquí. La fusión de Apple y BuddyBuild también puso en tela de juicio el futuro de Xcode Serve. Esta es también una campana de alarma para las empresas que utilizan el servidor Xcode en este momento.

Mirando hacia el 2019:

  • ¿Está buscando soluciones de CI / CD móviles multiplataforma comunes para Android e iOS? Es hora de buscar otros servicios de CI / CD específicos para dispositivos móviles como Travis CI, Nevercode, Bitrise, Circle CI, etc., lo que sea adecuado para la infraestructura de su proyecto. O Administre la Infraestructura móvil internamente utilizando Jenkins, TeamCity, etc. si tiene recursos dedicados con habilidades.
  • ¿Buscas una solución solo para iOS? Espere hasta WWDC lo que Apple + BuddyBuild tiene para ofrecer antes de pasar a cualquier otro servicio.
  • Los usuarios actuales de Xcode Server pueden continuar utilizando tal cual, hasta que tengamos noticias sobre el futuro de Xcode Server.

2. API de App Store Connect

Otra noticia de última hora en 2018 fue el anuncio de Apple de AppStore Connect API. En WWDC 2018, se ha anunciado una API oficial para hablar con el portal de desarrolladores de Apple y iTunes Connect. Apple también combinó el Portal de Desarrolladores y iTunes Connect y lo renombró como "App Store Connect". Hay excelentes sesiones de WWDC sobre Novedades en App Store Connect y Automatización de App Store Connect

App Store Connect API es una API RESTful estándar basada en JWT (JSON Web Tokens) para autenticación y se puede acceder desde todas las plataformas. Con la API de App Store Connect, podemos automatizar casi todo lo relacionado con la App Store, incluido

  • Administrar certificados, aprovisionar perfiles, administrar ID de dispositivo e ID de paquete
  • Administrar usuarios, roles y acceso a aplicaciones de App Store Connect
  • Gestión de TestFlight y Beta Testers y enlaces públicos
  • Descargar informes financieros e informes de ventas

XCBlog ha cubierto la API de App Store Connect en detalles en la publicación anterior. La API de App Store Connect eliminará muchas herramientas de terceros del proceso actual de CI / CD. No es de extrañar, habrá cientos de herramientas de código abierto en el mercado que usan la API de App Store Connect bajo el capó.

Mirando hacia el 2019:

La API de App Store Connect eliminará muchas herramientas de terceros del proceso actual de CI / CD. No es de extrañar, habrá cientos de herramientas de código abierto en el mercado que usan la API de App Store Connect bajo el capó. Prepárese para usar esas nuevas herramientas brillantes o escriba su propia herramienta personalizada para que coincida con los requisitos de su proyecto utilizando la API de App Store Connect.

3. Retirada de Fastlane

Fastlane se ha utilizado para automatizar las canalizaciones de implementación de iOS para muchas aplicaciones de iOS y hasta ahora ha funcionado bien. Como Apple ha mejorado drásticamente el flujo de trabajo de automatización en Xcode Server y los servicios de CI / CD de terceros manejan la mayor parte de la automatización subyacente, el uso de herramientas Fastlane se vuelve redundante. Apple nunca proporcionó una API para conectarse al portal de desarrolladores de Apple o iTunes Connect. Esa es la razón por la que la mayoría de los desarrolladores de iOS ha elegido Fastlane para automatizar las canalizaciones de implementación de iOS. Sin embargo, con el anuncio de Apple de AppStore Connect API, la mayoría de las herramientas Fastlane se volverán redundantes y tarde o temprano tendrán que ser reemplazadas por herramientas nativas para desarrolladores de Apple. La comunidad Fastlane también se calmó en Twitter y Github, el proyecto en Fastlane CI también ha quedado en desuso. Esto indica que Fastlane debe retirarse tarde o temprano. Prepárese para las herramientas brillantes y la API de App Store Connect.

Mirando hacia el 2019:

Los bits de las herramientas Fastlane como scan, gym seguirán funcionando bien para construir y probar una aplicación iOS, pero tarde o temprano tendrá que adoptar el nuevo flujo basado en la API de App Store Connect. Prepárese para desmantelar las herramientas Fastlane que ya no son necesarias, por ejemplo, embarque.

Tarde o temprano, debe migrar al nuevo flujo de trabajo, por lo que sería una buena idea comenzar a prepararse para nuevas herramientas y retirar Fastlane y Ruby de los proyectos de iOS.

4. Mejoras de TestFlight + Lanzamientos por fases

Apple ha lanzado el soporte de enlaces públicos TestFlight donde podemos compartir el enlace y hacer que las personas prueben la aplicación beta. Se pueden enviar enlaces públicos a los probadores de 10K, pero podemos establecer el límite. Los enlaces se pueden deshabilitar o habilitar en cualquier momento para controlar los probadores de números. La mayoría de las características de TestFlight, como la creación de grupos, la asignación de compilaciones al grupo, la administración de enlaces públicos, la administración de probadores y la información de prueba se pueden automatizar mediante una API de App Store Connect. Las versiones por fases para la entrega continua + las mejoras de TestFlight pueden funcionar mejor juntas para versiones sin miedo.

Mirando hacia el 2019:

Comience a usar los enlaces públicos para las compilaciones de TestFlight, pero tenga cuidado al compartir. Existe el riesgo de filtrar las funciones al público antes de su lanzamiento. Comience a automatizar el proceso de gestión de los probadores, grupo usando la API de App Store Connect. Aproveche la versión por fases para probar características específicas en producción sin riesgo.

5. App Store Connect- Aplicación iOS

Apple también lanzó la aplicación iOS "App Store Connect" para que podamos realizar casi todas las actividades desde los dispositivos iOS sin la necesidad de ir al sitio web. En la aplicación iOS, podemos

  • Vea las tendencias, ventas y actualizaciones, compras en la aplicación, paquetes de aplicaciones
  • Todas nuestras aplicaciones y la capacidad de cambiar al equipo de desarrollo.
  • Información detallada de la aplicación, lanzar / rechazar aplicaciones, administrar revisiones de usuarios y configurar notificaciones

Hay muchas cosas sobre pedidos anticipados, compras en la aplicación, etc. de la aplicación iOS.

Mirando hacia el 2019:

Utilice la aplicación iOS para administrar todas las funciones de App Store Connect desde su dispositivo móvil.

6. Nuevo sistema de compilación Xcode

Xcode New Build System se ha activado de manera predeterminada en Xcode 10. Aquí puede leer la nota de lanzamiento completa del nuevo sistema de compilación. Hemos cubierto los detalles internos del nuevo sistema de compilación en nuestra publicación de blog anterior. La nueva configuración de compilación se puede activar desde Xcode Files-> Project / Workspace Settings y podemos alternar entre el sistema de compilación heredado y el nuevo. En el servidor CI, desde la línea de comandos usando xcodebuild, entonces tenemos que pasar el parámetro adicional -UseModernBuildSystem = YES también forzará el nuevo sistema de compilación. Puede leer más sobre el nuevo sistema de compilación Xcode que se puede utilizar en el XCBlog anterior aquí. Usando el sistema de compilación moderno, podemos mejorar drásticamente el tiempo de compilación de Swift siguiendo algunos consejos básicos mencionados aquí.

Mirando hacia el 2019:

El nuevo sistema de compilación Xcode está diseñado para encontrar los problemas que no se pueden determinar con el flujo habitual. Es posible que necesitemos adaptar nuestras aplicaciones de iOS para ayudar a construir el sistema para su trabajo correctamente. Es posible que tengamos algunos fallos cuando el nuevo sistema de compilación esté habilitado, deberíamos solucionarlos rápidamente.

7. Pruebas paralelas y basadas en IA

Existen muchas herramientas de prueba móviles sin código basadas en IA que están surgiendo en el mercado y que toman una aplicación iOS, generan escenarios de prueba y los ejecutan en la nube. Estas herramientas también informan problemas básicos en las aplicaciones sin ninguna configuración. Actualmente, hay pocas herramientas de pruebas móviles basadas en AI / ML disponibles en el mercado, por ejemplo, test.ai para las pruebas móviles. Applitools usa AI para pruebas de regresión visual. Bitbar anunció la solución de prueba de aplicaciones impulsada por AI, también conocida como AI Testbot, para probar aplicaciones móviles usando Inteligencia Artificial. Estas herramientas pueden cambiar la forma en que se realizan las actividades de control de calidad en el futuro y cómo las herramientas basadas en IA se pueden usar para respaldar los esfuerzos de prueba de iOS.

Apple también mejora las tecnologías de prueba cada año. En 2018, se anunció el soporte para las pruebas paralelas al siguiente nivel al paralelizar conjuntos de pruebas dentro de un solo simulador creando clones de los simuladores. Xcode crea un proceso de corredor diferente bajo el capó y cada proceso obtiene pruebas específicas asignadas. Esto reduce la ejecución de la prueba dramáticamente. Más información sobre las pruebas paralelas de Xcode aquí.

Mirando hacia el 2019:

Utilice las herramientas de prueba basadas en AI para probar aplicaciones iOS y adopte el soporte de pruebas paralelas para XCTest.

8. Maneras fáciles de implementar archivos IPA

A partir de ahora, había una opción limitada para implementar los archivos IPA en App Store Connect. Las opciones más comunes son Xcode local, cargador de aplicaciones, Fastlane, ITMSTrasporter o altool. Puede leer los detalles sobre estas opciones en los detalles aquí. Sin embargo, en 2018, tenemos un par de opciones más para implementar los archivos IPA

  • Usando ITMSTrasporter del servidor Linux. Detalles aquí
  • Usando xcodebuild para cargar el archivo IPA directamente a la App Store. Detalles aquí

Esto permitirá que los servidores CI / CD carguen los archivos IPA pregenerados a la App Store de manera más fluida o incluso desde los servidores Linux.

Mirando hacia el 2019:

Implementación de aplicaciones iOS desde la línea de comandos usando la herramienta xcodebuild usando exportOptionsPlist. Intente transferir archivos IPA a servidores Linux y use ITMSTransporter para implementar las aplicaciones en App Store.

9. CI para SDK móvil y bibliotecas Swift

A medida que crece la popularidad de las aplicaciones móviles, la mayoría de las empresas necesitan arquitectura para crear aplicaciones móviles más rápido. Por lo tanto, para asegurar la calidad y reutilizar el código existente en múltiples aplicaciones, las compañías comenzaron a construir kits de desarrollo de software (SDK) y bibliotecas reutilizables para que el código pueda reutilizarse fácilmente en múltiples aplicaciones. Como el código de la biblioteca puede afectar a varios clientes, es esencial asegurarse de que la calidad del código del SDK cumpla con los requisitos de todos los clientes. En la mayoría de las empresas, hay una configuración de infraestructura CI / CD para las aplicaciones principales, pero ninguna para las bibliotecas y SDK. En realidad, la integración continua para bibliotecas y SDK es muy importante, incluso más importante que CI para las aplicaciones principales.

La integración continua para Mobile SDK se puede lograr mediante varios servicios de CI basados ​​en la nube, una de mis publicaciones de ejemplo en el blog de Nevercode aquí cómo se puede hacer con Nevercode pero se puede hacer con otros servicios de CI que está utilizando en este momento.

Mirando hacia el 2019:

La tendencia de agregar el CI para iOS SDKs y bibliotecas definitivamente aumentará en un futuro cercano, así que obtenga todos sus SDK móviles y bibliotecas en el servidor CI.

10. Acciones de GitHub

GitHub ha lanzado el servicio GitHub Action, que se puede utilizar para CI / CD de los paquetes Swift desde los contenedores acoplables basados ​​en Linux. La publicación detallada del blog sobre cómo configurar CI / CD con Github Action para paquetes Swift aquí. Las acciones de Github pueden considerarse como la propia solución de CI / CD de GitHub incorporada dentro de Github. Los desarrolladores pueden crear flujos de trabajo utilizando el editor de GUI o desde el código.

Actualmente, este servicio está limitado a las compilaciones basadas en Docker de Linux, pero quién sabe si podemos obtener las imágenes de macOS para usar las acciones de GitHub. Podemos esperar y ver lo que GitHub Actions trae al desarrollo de iOS en un futuro cercano.

Mirando hacia el 2019:

Esté atento a la hoja de ruta de acciones de GitHub para iOS CI / CD.

Conclusión

En 2018, sucedieron tantas cosas buenas para lanzar las aplicaciones de iOS sin problemas. Teniendo en cuenta todas esas noticias, podemos prepararnos para 2019 y ver qué vendrá después para el lanzamiento de iOS y el proceso de CI / CD. Espero haber cubierto la mayoría de las historias de 2018, por favor, hágame saber lo que piensa y también envíeme un mensaje si me he perdido algo

====================================

¿Te gusta esta publicación de XCBlog por XCTEQ? También le pueden gustar algunos de nuestros proyectos de código abierto en Github o Síganos en Twitter y LinkedIn