CI/CD (Continuous Integration / Continuous Delivery) es la práctica de compilar, probar y entregar automáticamente una aplicación con cada cambio de código. Según Statista (2025), el 80% de los equipos de desarrollo móvil utilizan CI/CD en su trabajo. Este artículo analiza herramientas CI populares, Fastlane para automatización de compilaciones móviles, así como Canary Release y Feature Flags.
Conclusiones clave
Continuous Integration es la base de la automatización CI/CD para aplicaciones móviles. Es una práctica donde cada desarrollador fusiona su código en un repositorio compartido varias veces al día. Después de cada push, el servidor CI compila automáticamente el proyecto y ejecuta pruebas. Si las pruebas fallan, la compilación se considera rota y el equipo soluciona el problema de inmediato. CI previene la situación de «en mi máquina funciona», donde el código de un desarrollador rompe el de otro.
Build Pipeline — una secuencia de pasos ejecutados en cada push: linting de código → pruebas unitarias → compilación debug APK/IPA → pruebas de integración → compilación release. Cada paso se ejecuta solo después de que el anterior haya tenido éxito. Los artefactos de compilación — APK, IPA, AAB, informes de prueba — se guardan y están disponibles para descargar.
Continuous Delivery — el código se compila y prueba automáticamente, pero una persona decide si lanzarlo a producción. Continuous Deployment — cada compilación exitosa se lanza automáticamente a producción. Para aplicaciones móviles, es más común usar CD (entrega a tiendas) a través de TestFlight o Internal Testing, ya que la decisión final de publicación la toma el desarrollador o el gerente. Staging — entorno lo más cercano posible a producción, utilizado para probar la compilación antes del lanzamiento.
GitHub Actions es un sistema CI/CD integrado para automatizar aplicaciones móviles en GitHub. Actions utiliza configuración YAML (.github/workflows) para definir pipelines. Hay acciones listas para desarrollo móvil: actions/setup-java, gradle-build-action para Android, xcodebuild-action para iOS. GitHub Actions proporciona 2000 minutos gratuitos al mes para repositorios privados.
Ejemplo: un workflow de Android incluye checkout de código, configuración de JDK 17, caché de dependencias de Gradle, ejecución de lint y pruebas unitarias, compilación APK y carga de artefactos. Para iOS — checkout, configuración de Xcode, pod install, ejecución de XCTest, archivado y exportación IPA. GitHub Actions se integra con GitHub Releases, Slack y Telegram para notificaciones.
GitLab CI es un sistema CI/CD integrado en GitLab, configurado mediante .gitlab-ci.yml. GitLab CI utiliza runners — agentes que ejecutan trabajos. Para desarrollo móvil puede usar runners compartidos (Linux para Android) o sus propios runners (macOS para iOS). GitLab CI admite trabajos paralelos, artefactos, entornos y aprobación manual para lanzamientos a producción.
Bitrise es una plataforma CI/CD especializada en automatización de aplicaciones móviles. Bitrise ofrece Steps listos para Android, iOS, Flutter y React Native: Gradle Runner, Xcode Archive, Flutter Test, CocoaPods Install. Bitrise configura automáticamente la firma de código para iOS (a través de Codesigndoc) y proporciona máquinas virtuales con Xcode, Android SDK, Flutter y otras herramientas preinstaladas.
Ventajas de Bitrise: configuración sencilla mediante el editor visual de Workflow, soporte para compilaciones paralelas, integración con Firebase Test Lab, App Store Connect y Google Play Console. Bitrise ofrece 90 minutos gratuitos al mes para proyectos personales. En IT Sectr usamos Bitrise para todos los proyectos móviles — simplifica significativamente el CI/CD en comparación con la configuración manual de GitHub Actions.
| Criterio | GitHub Actions | GitLab CI | Bitrise | CircleCI |
|---|---|---|---|---|
| Especialización | General | General | Móvil | General |
| macOS para iOS | Sí (macOS runner) | Runner propio | Sí (integrado) | Sí (macOS) |
| Límite gratuito | 2000 min/mes | 400 min/mes | 90 min/mes | 6000 min/mes |
| Integración Fastlane | Mediante run script | Mediante run script | Step listo | Mediante run script |
| Code Signing | Configuración manual | Configuración manual | Automática | Mediante Fastlane |
| Compilaciones paralelas | Sí | Sí | Sí | Sí |
Fastlane es una herramienta de automatización de aplicaciones móviles para iOS y Android, escrita en Ruby. Fastlane consta de un sistema de acciones listas (más de 200) y un DSL para describir escenarios mediante Fastfile. Fastlane resuelve tareas que todo desarrollador móvil realiza manualmente: firma de código, generación de capturas de pantalla, carga en TestFlight y Google Play, gestión de certificados y perfiles de aprovisionamiento.
Lane — un escenario con nombre en Fastfile. Ejemplo: lane :release do — una cadena de acciones para lanzar una versión. Match — una herramienta para almacenar y sincronizar de forma segura certificados y perfiles de aprovisionamiento mediante un repositorio Git cifrado. Gym — compilación y archivado de aplicaciones iOS (un envoltorio sobre xcodebuild). Pilot — carga y gestión de compilaciones en TestFlight. Deliver — carga de aplicaciones y metadatos en App Store Connect. Snapshot — generación automática de capturas de pantalla en todos los idiomas. Screengrab — generación automática de capturas de pantalla para Android.
Ejemplo de Fastfile para Android: lane :beta llama a gradle (assembleRelease), luego firebase_app_distribution para distribución a testers. Para iOS: lane :beta llama a match (descarga de certificados), gym (archivado) y pilot (carga en TestFlight). Fastlane puede ejecutarse localmente y en un servidor CI — lo convierte en una herramienta universal en cualquier proyecto móvil.
Canary Release es una estrategia de automatización CI/CD para implementar una nueva versión de la aplicación a un pequeño porcentaje de usuarios (1–5%) antes del lanzamiento completo. En Google Play Console se implementa mediante Staged Rollout: publica una actualización al 5% de su audiencia, monitorea fallos y métricas, y aumenta el porcentaje si no hay problemas. En App Store Connect — mediante Phased Release for Automatic Updates.
A/B Testing — comparación de dos versiones de una función en grupos aleatorios de usuarios. En el desarrollo móvil, las pruebas A/B se realizan mediante Feature Flags, Firebase Remote Config o lógica del servidor. Canary Release y las pruebas A/B minimizan los riesgos al implementar nuevas funciones.
Feature Flag (Feature Toggle) — activación condicional de funcionalidad sin implementar nuevo código. Un Feature Flag es una comprobación en el código: if (featureFlag.isEnabled()) { /* código nuevo */ } else { /* código antiguo */ }. Los flags se gestionan mediante servicios: LaunchDarkly, Split.io, Firebase Remote Config. Los Feature Flags permiten a los desarrolladores fusionar código en main incluso si la función aún no está lista para los usuarios.
LaunchDarkly — la plataforma de gestión de Feature Flags más popular. LaunchDarkly proporciona SDK para iOS, Android, Flutter y React Native. Puede activar funciones para usuarios específicos, segmentos, regiones o un porcentaje de la audiencia. Los Feature Flags también se utilizan como kill switch — desactivación instantánea de una función problemática sin publicar una nueva versión de la aplicación.
Preguntas frecuentes
Comience con GitHub Actions — si su código está en GitHub. Actions es gratuito para repositorios públicos, tiene soporte integrado para Android e iOS (macOS runners) y un enorme ecosistema de actions listas. Para especialización móvil — Bitrise.
No, los servicios CI (GitHub Actions, Bitrise, CircleCI) proporcionan macOS runners. Paga por minutos de uso. Para depuración local de Fastlane necesita un Mac, pero el CI puede funcionar en la nube.
Canary Release — implementación de una nueva versión a un subconjunto de usuarios para verificar la estabilidad. Pruebas A/B — comparación de dos variantes de una función para elegir la mejor. Canary se trata de fiabilidad, A/B de conversión.
Fastlane no es obligatorio, pero altamente recomendado. Sin Fastlane tendría que ejecutar xcodebuild manualmente, gestionar certificados y subir compilaciones a través de una interfaz web. Fastlane automatiza todas estas tareas con un solo comando.
Match es una herramienta de Fastlane para gestionar certificados de Code Signing de iOS. Match almacena certificados y perfiles de aprovisionamiento en un repositorio Git cifrado y los sincroniza entre todos los desarrolladores y el servidor CI.
Resumen
Desarrollaremos una aplicación móvil llave en mano
IT Sectr crea aplicaciones para iOS y Android para startups y empresas desde 2017. Le asesoraremos y le propondremos la mejor solución.