Fastlane es una herramienta de código abierto para automatizar la compilación, las pruebas y la publicación de aplicaciones iOS y Android. En lugar de ejecutar manualmente una docena de comandos para firmar, compilar y subir a la tienda, el desarrollador describe todo el proceso en un Fastfile y lo ejecuta con un solo comando. Según Fastlane Docs, 2025, la herramienta se utiliza en más de 1.5 millones de proyectos en todo el mundo. Fastlane combina utilidades para trabajar con App Store Connect, Google Play Console y sistemas de firma de código.
Puntos clave
Fastlane es una herramienta de automatización de compilaciones móviles escrita en Ruby y distribuida bajo la licencia MIT. Automatiza las tareas rutinarias del desarrollador móvil: compilar la aplicación, ejecutar pruebas, crear capturas de pantalla, firmar código y subir binarios a App Store o Google Play. En lugar de 15–20 comandos manuales, el desarrollador ejecuta un solo comando fastlane con el nombre del escenario.
Fastlane funciona como un envoltorio sobre las utilidades de Xcode (xcodebuild, xcrun) y Android SDK (gradlew, apksigner, bundletool), proporcionando una interfaz unificada para ambas plataformas. Esto es especialmente valioso para equipos que mantienen versiones iOS y Android de la misma aplicación: Fastfiles idénticos pueden describir compilaciones para ambas plataformas con mínimas diferencias en los parámetros.
Según GitHub, Fastlane tiene más de 39 mil estrellas y es el estándar de automatización en el desarrollo móvil. La herramienta cuenta con el respaldo de la comunidad y de Google: Fastlane está integrado en Firebase como la forma recomendada de entregar aplicaciones Android a Google Play Console.
La arquitectura de Fastlane se basa en tres niveles: actions (comandos básicos), lanes (escenarios) y herramientas (utilidades especializadas). Las actions son funciones individuales de Fastlane, cada una de las cuales realiza una acción específica: crear una captura de pantalla, compilar un IPA, subir a TestFlight. Las lanes combinan varias actions en un escenario secuencial descrito en un Fastfile.
Las Actions son los componentes básicos de Fastlane. Cada action recibe parámetros y realiza una tarea. Por ejemplo, la action gym compila una aplicación iOS, scan ejecuta pruebas, pilot sube una compilación a TestFlight. En total, Fastlane tiene más de 200 actions integradas, la documentación de cada una está disponible mediante el comando fastlane action [nombre].
Si las actions integradas no son suficientes, el desarrollador puede crear una custom action en Ruby y conectarla en Fastfile. Las custom actions se distribuyen a través de plugins de Fastlane, que se publican en Rubygems y se instalan mediante el archivo FastfilePlugin en la raíz del proyecto.
Una lane es un escenario de automatización con nombre que combina varias actions en una secuencia lógica. Una lane puede llamar a otras lanes (private lanes), pasar parámetros y manejar errores. Esto permite construir una jerarquía de escenarios: una lane base de compilación, una lane de despliegue, una lane de ciclo CI/CD completo.
Fastlane incluye un conjunto de herramientas especializadas, cada una resolviendo una tarea específica de automatización móvil. Las herramientas se ejecutan como actions dentro de lanes o directamente desde la línea de comandos. Veamos cuatro herramientas clave que cubren las principales necesidades de CI/CD para iOS y Android.
| Herramienta | Propósito | Comando |
|---|---|---|
| scan | Ejecutar pruebas Unit y UI en simulador iOS | fastlane scan |
| gym | Compilar archivo IPA o APP para iOS | fastlane gym |
| match | Sincronizar certificados y perfiles de aprovisionamiento mediante Git | fastlane match |
| deliver | Subir binario y metadatos a App Store Connect | fastlane deliver |
| snapshot | Generación automática de capturas en diferentes dispositivos | fastlane snapshot |
Scan simplifica la ejecución de pruebas de Xcode, seleccionando automáticamente un simulador adecuado y formateando el informe. Gym compila la aplicación con banderas de compilación óptimas y admite exportOptions.plist para diferentes tipos de compilación (development, adhoc, appstore). Deliver permite subir no solo el binario sino también capturas, descripción, versiones y precios a través de un único archivo de metadatos.
La herramienta Match merece atención especial: resuelve el problema de almacenamiento y sincronización de certificados iOS en equipos. Match cifra y almacena certificados y perfiles de aprovisionamiento en un repositorio Git, y los desarrolladores los obtienen automáticamente al ejecutar fastlane match. Esto elimina la configuración manual en cada estación de trabajo.
Snapshot es una herramienta para crear automáticamente capturas de pantalla de una aplicación móvil en diferentes dispositivos e idiomas. Snapshot ejecuta pruebas de UI en simuladores iOS, tomando capturas en cada paso de la prueba. Los resultados se guardan en el directorio fastlane/screenshots y pueden subirse a App Store Connect mediante deliver.
Para Android, screengrab realiza una función similar en emuladores Android. Ambas herramientas admiten localización: las capturas se crean para cada idioma, lo que simplifica la preparación de materiales para publicación en tiendas de aplicaciones multilingües.
Para proyectos iOS, Fastlane se configura mediante Gemfile (instalación de la gema fastlane) y Fastfile en el directorio fastlane. La configuración inicial se realiza con el comando fastlane init, que crea la estructura de directorios básica, solicita datos de App Store Connect y genera una plantilla Fastfile con lanes básicas.
El comando clave para iOS es fastlane match, que debe ejecutarse primero para obtener certificados y perfiles de aprovisionamiento. Después de una firma exitosa, Fastlane puede compilar la aplicación (gym), ejecutar pruebas (scan) y subir el binario (pilot o deliver).
# Fastfile para aplicación iOS
default_platform(:ios)
lane :build do
cocoapods
scan(scheme: 'App', devices: ['iPhone 15'])
gym(scheme: 'App', export_method: 'app-store')
end
lane :deploy do
match(type: 'appstore')
build
pilot(skip_waiting_for_build_processing: true)
slack(message: 'Nueva versión subida a TestFlight')
end
Para trabajar con TestFlight, use la action pilot: sube el IPA y gestiona los evaluadores. Fastlane admite upload_to_testflight (un sinónimo de pilot) y maneja automáticamente la espera del procesamiento de la compilación por parte de Apple, que puede tardar de 5 a 30 minutos.
Para proyectos Android, Fastlane se configura de manera similar, pero en lugar de herramientas de Xcode se usan Gradle y Android SDK. Fastlane para Android admite la compilación de APK y AAB, la firma mediante apksigner o jarsigner, la ejecución de pruebas instrumentadas y la subida a Google Play Console mediante la action Supply.
La diferencia clave es que la compilación Android no requiere gestión de certificados mediante match (la firma Android se gestiona mediante Keystore, que se almacena por separado). Fastlane para Android usa la action gradle para ejecutar cualquier tarea de Gradle y la action supply para trabajar con Google Play.
# Fastfile para aplicación Android
default_platform(:android)
lane :build do
gradle(task: 'clean assembleRelease')
gradle(task: 'testReleaseUnitTest')
end
lane :deploy do
build
supply(
track: 'internal',
aab: 'app/build/outputs/bundle/release/app-release.aab'
)
end
Para trabajar con Google Play Console, se requiere una cuenta de servicio de Google Cloud con acceso a la API de Google Play. Fastlane acepta la clave JSON de la cuenta de servicio a través de la variable de entorno SUPPLY_JSON_KEY o el parámetro json_key en la action supply. El track de publicación puede ser internal, alpha, beta o production.
Fastlane se integra con cualquier sistema CI/CD que pueda ejecutar scripts Ruby: Jenkins, Travis CI, GitHub Actions, GitLab CI, Bitrise y CircleCI. La integración se reduce a instalar la gema fastlane y ejecutar el comando fastlane [lane_name] en la etapa script del pipeline.
Para CI/CD, es importante configurar variables de entorno para almacenar datos sensibles: MATCH_PASSWORD (contraseña de cifrado de certificados), FASTLANE_USER (Apple ID), FASTLANE_PASSWORD (contraseña de Apple ID). En Travis CI, las variables se cifran mediante travis encrypt; en GitHub Actions, mediante Secrets del repositorio.
La práctica recomendada es usar fastlane match en CI/CD con el indicador readonly para evitar cambios accidentales en el repositorio de certificados. Para Android, use un Keystore codificado en Base64 y almacenado en una variable de entorno, que se descodifica y guarda en un archivo temporal durante la etapa before_install.
Fastlane Match es una herramienta para automatizar la gestión de certificados iOS y perfiles de aprovisionamiento, una de las funciones más valiosas de Fastlane para equipos. Match crea un repositorio Git cifrado (o usa uno existente) que almacena todos los certificados y perfiles, sincronizándolos entre desarrolladores y servidores CI/CD.
Match admite cinco tipos de perfiles: development, adhoc, appstore, enterprise y developer_id. Cada tipo se almacena en un directorio separado dentro del repositorio. El comando fastlane match development instala certificados de desarrollo en la máquina local, mientras que fastlane match appstore instala perfiles de App Store para compilaciones en CI.
# Uso de Match en Fastfile
lane :setup_signing do
match(
type: 'appstore',
readonly: true,
git_branch: 'main'
)
end
lane :update_profiles do
match(
type: 'development',
force: true,
app_identifier: ['com.example.app', 'com.example.app.watchkitapp']
)
end
La seguridad de Match se garantiza cifrando todos los archivos antes de enviarlos a Git. La contraseña de cifrado se establece mediante la variable de entorno MATCH_PASSWORD y debe ser la misma para todos los miembros del equipo. Match usa OpenSSL para el cifrado y no almacena la contraseña en texto plano en el repositorio.
Preguntas frecuentes
Fastlane es una herramienta Open Source de automatización para aplicaciones iOS y Android. Automatiza la compilación, pruebas, firma de código y entrega a App Store y Google Play a través de un único archivo de configuración Fastfile y un conjunto de herramientas integradas.
Las principales herramientas de Fastlane: scan (pruebas), gym (compilación iOS), match (certificados), deliver (App Store), pilot (TestFlight), snapshot (capturas), supply (Google Play) y frameit (marcos para capturas). Cada herramienta está disponible como action dentro de una lane o desde la línea de comandos.
Instale gem fastlane, ejecute fastlane init en la raíz del proyecto. Configure Fastfile con lanes para compilación (gym) y pruebas (scan). Configure Match para la gestión de certificados mediante un repositorio Git. Añada una lane de despliegue con pilot o deliver para subir a App Store Connect.
Ejecute fastlane init indicando el package name. Use la action gradle para ejecutar tareas de Gradle (assembleRelease, testReleaseUnitTest). Configure Keystore mediante variables de entorno. Use la action supply para subir AAB o APK a Google Play Console en el track deseado.
Instale gem fastlane en el servidor CI/CD y agregue el comando fastlane [lane_name] en la etapa script del pipeline. Configure las variables de entorno FASTLANE_USER, FASTLANE_PASSWORD y MATCH_PASSWORD en las variables secretas de CI/CD. Use match readonly para CI para evitar cambios accidentales de certificados.
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.
Lea también