Screengrab (Fastlane) — qué es, funciones y automatización de capturas de pantalla

Autor: IT Sectr Publicado: 2026-04-15 Tiempo de lectura: 8 min

Screengrab es una utilidad del ecosistema Fastlane para automatizar la creación de capturas de pantalla de aplicaciones móviles en Android y iOS. En lugar de deslizar manualmente las pantallas en decenas de dispositivos, el desarrollador ejecuta un solo comando y Screengrab captura de forma independiente todas las pantallas necesarias. Según Fastlane Docs, 2026, la herramienta admite hasta 30 idiomas simultáneamente y cualquier resolución de pantalla especificada en la configuración.

Puntos clave

  • Screengrab — una herramienta de Fastlane para la creación automática de capturas de pantalla de aplicaciones móviles en Android y iOS.
  • Automatización reemplaza la creación manual de cientos de capturas con un solo comando en la terminal.
  • Localización — generación simultánea de capturas de pantalla en decenas de idiomas sin configuración adicional.
  • CI/CD — integración con cualquier pipeline: Jenkins, GitHub Actions, GitLab CI.
  • Flexibilidad — soporte para múltiples dispositivos, orientaciones e idiomas en una sola ejecución.

Qué es Screengrab y por qué se necesita

Screengrab es un componente del ecosistema Fastlane diseñado para la creación automatizada de capturas de pantalla de aplicaciones móviles. La herramienta apareció en 2015 como respuesta al problema: para publicar en Google Play y App Store se requieren de 4 a 10 capturas por idioma. Con soporte para 30 idiomas, esto supone entre 120 y 300 capturas manuales.

El problema de la creación manual de capturas de pantalla

Un desarrollador inicia manualmente la aplicación en un simulador o dispositivo, se desplaza hasta la pantalla deseada, toma una captura, la transfiere al ordenador, la recorta y la guarda en la carpeta correcta. El procedimiento se repite para cada idioma y cada orientación. Según Google Play Console, la aplicación media se actualiza cada dos semanas, convirtiendo las capturas de pantalla en una rutina habitual.

Ventajas de la automatización

Screengrab resuelve el problema de raíz: el desarrollador describe escenarios de prueba con un framework de UI (Espresso para Android, XCTest para iOS), y Screengrab los ejecuta en todos los dispositivos e idiomas necesarios de forma automática. Fastlane coordina el proceso: compila la aplicación, ejecuta las pruebas, recoge las capturas y las empaqueta en la estructura de carpetas requerida.

El resultado: cien capturas de pantalla en 10–15 minutos en lugar de varias horas de trabajo manual. Google recomienda actualizar las capturas con cada cambio significativo de la interfaz, y sin automatización este consejo suele ignorarse.

Cómo funciona Screengrab: arquitectura y principio de funcionamiento

La arquitectura de Screengrab se basa en dos componentes clave: un cliente en el dispositivo (screengrab-lib) y un ejecutor que gestiona la ejecución de las pruebas y la recogida de resultados. En Android se utiliza el framework de pruebas instrumentadas; en iOS, XCTest.

Ciclo de vida de una ejecución

Fastlane llama a la acción screengrab, que lee el archivo de configuración Screengrabfile. El ejecutor compila el APK de prueba con la librería screengrab-lib conectada, lo instala en los dispositivos o emuladores conectados y ejecuta las pruebas de UI marcadas con anotaciones para capturas de pantalla.

ruby
# Fastfile — descripción de lane para capturas de pantalla
lane :screenshots do
  capture_android_screenshots(
    output_directory: "fastlane/metadata/android/screenshots",
    locales: ["ru-RU", "en-US", "de-DE"],
    devices: ["pixel_6", "pixel_tablet"],
    use_tests_external_storage: true
  )
end

Estructura de los archivos de salida

Screengrab crea una jerarquía de carpetas: idioma → dispositivo → capturas. La estructura coincide completamente con los requisitos de Google Play Console y App Store Connect. App Store exige tamaños estrictamente definidos para cada tipo de dispositivo, y Screengrab genera capturas exactamente según las especificaciones.

Soporte para múltiples dispositivos

La herramienta puede ejecutar pruebas en paralelo en todos los dispositivos y emuladores conectados. Los emuladores de Android se inician automáticamente si no están activos. Para iOS, Screengrab utiliza los simuladores de Xcode.

Instalación y configuración de Screengrab para Android

La instalación de Screengrab consta de dos partes: añadir la librería al proyecto y configurar el archivo de configuración. En Android se necesitan el framework de UI Espresso y la librería screengrab-lib del repositorio de Fastlane.

Adición de dependencias

En el build.gradle del módulo de la aplicación se añade la dependencia screengrab-lib. La librería proporciona la clase ScreenCapturer, que realiza una captura de pantalla en el momento de la llamada.

groovy
// build.gradle (module: app)
androidTestImplementation(
  'tools.fastlane:screengrab-lib:2.1.0'
)

Escritura de una prueba con capturas de pantalla

Una prueba de UI se marca con la anotación Screengrab.screenshot() en los puntos necesarios. Cada llamada captura la pantalla actual y la guarda con el nombre especificado.

kotlin
import tools.fastlane.screengrab.Screengrab
import tools.fastlane.screengrab.locale.LocaleTestRule

class ScreenshotTest {

    @get:Rule
    val localeTestRule = LocaleTestRule()

    @Test
    fun testTakeScreenshots() {
        Screengrab.screenshot("main_screen")
        // Acciones: tocar el botón de inicio de sesión
        Screengrab.screenshot("login_screen")
    }
}

Configuración de Screengrabfile

El archivo Screengrabfile almacena los parámetros de ejecución: lista de dispositivos, idiomas, tiempos de espera y ruta de guardado. El archivo suele estar ubicado en la carpeta fastlane, junto al Fastfile.

Localización de capturas de pantalla y múltiples idiomas

La localización es la característica clave de Screengrab y la razón principal por la que se elige con más frecuencia. La herramienta cambia automáticamente el idioma de la aplicación antes de cada ejecución de pruebas y realiza capturas en todos los idiomas especificados.

Configuración de idiomas

Los idiomas se definen en el Screengrabfile mediante el parámetro locales. Para cada idioma, Screengrab reinstala la aplicación con los recursos correspondientes y ejecuta el ciclo completo de pruebas. LocaleTestRule en Android cambia automáticamente la configuración regional del dispositivo.

ruby
# Screengrabfile
locales [
  "ru-RU",
  "en-US",
  "de-DE",
  "fr-FR",
  "es-ES",
  "ja-JP",
  "ko-KR"
]

Estructura de carpetas para capturas localizadas

Screengrab crea directorios siguiendo el esquema: screenshots/{locale}/{device_name}/{screenshot_name}.png. Esta estructura coincide directamente con los requisitos de Google Play, lo que permite subir las capturas mediante Fastlane deliver con un solo comando.

Para iOS, App Store Connect espera las capturas en una estructura plana por idioma. Fastlane convierte automáticamente la jerarquía de Screengrab al formato requerido al publicar.

Integración de Screengrab en un pipeline CI/CD

La integración con CI/CD es una de las principales ventajas de Screengrab. La herramienta se ejecuta desde la línea de comandos y no requiere interfaz gráfica, lo que la hace ideal para compilaciones en servidor.

GitHub Actions

En un entorno CI, es necesario iniciar un emulador de Android o un simulador de iOS y luego llamar al lane con las capturas. GitHub Actions admite el almacenamiento en caché de AVD, lo que acelera las ejecuciones repetidas.

Parámetros para CI

En la configuración de CI, es importante tener en cuenta las limitaciones de memoria y tiempo. Los emuladores de Android requieren al menos 2 GB de RAM por dispositivo, y una ejecución completa en 7 idiomas y 2 dispositivos tarda entre 20 y 40 minutos.

ruby
# Fastfile — lane para CI con tiempos de espera
lane :ci_screenshots do
  capture_android_screenshots(
    locales: ["en-US", "ru-RU"],
    devices: ["pixel_6"],
    clear_previous_screenshots: true,
    tests_timeout: "600",
    output_directory: "screenshots/ci"
  )
end

Pipeline de Jenkins

Para Jenkins se utiliza el paso sh con la llamada a bundle exec fastlane. Se recomienda ejecutar las capturas por la noche o mediante un desencadenador tras la fusión en la rama principal para no ralentizar el ciclo de desarrollo.

Screengrab vs alternativas: comparación de herramientas

Screengrab no es la única herramienta para automatizar capturas de pantalla. Existen alternativas con diferentes enfoques: herramientas integradas del sistema operativo, plataformas comerciales y librerías de capturas en código.

HerramientaPlataformaLocalizaciónCI/CD
ScreengrabAndroid, iOSAutomáticaNativa
ADB ShellAndroidManualMediante scripts
XCTestiOSManualMediante xcodebuild
Firebase Test LabAndroidRequiere configuración
AppiumMultiplataformaManualMediante WebDriver

ADB Shell ofrece control total, pero requiere escribir scripts para cada escenario. XCTest está integrado en Xcode, pero no gestiona la localización automáticamente. Firebase Test Lab ejecuta pruebas en dispositivos reales en la nube, lo que proporciona la máxima cobertura, pero cobra por minuto.

Screengrab gana por la combinación: Fastlane gestiona todo el ciclo de vida de la compilación, desde la compilación hasta la publicación. Google Play acepta directamente la estructura de carpetas de Screengrab mediante Fastlane deliver.

Problemas comunes y sus soluciones

Al trabajar con Screengrab, los desarrolladores suelen encontrarse con varios problemas recurrentes. Conocer los errores típicos reduce el tiempo de depuración en la primera ejecución.

Las capturas salen vacías o negras

El problema surge cuando Screengrab realiza la captura antes de que finalice el renderizado de la pantalla. La solución es añadir una pausa Thread.sleep() antes de llamar a screenshot() o utilizar IdlingResource de Espresso para esperar operaciones asíncronas.

Error de incompatibilidad de versiones

La versión de screengrab-lib debe coincidir con la versión de Fastlane. Fastlane se actualiza mensualmente, y una librería antigua podría no admitir nuevos parámetros de configuración. La solución es sincronizar las versiones mediante Gemfile y gradle.properties.

Ejecución lenta en CI

Ejecutar en 30 idiomas en 5 dispositivos puede llevar más de una hora. La solución es dividir las ejecuciones: una para la tienda en todos los idiomas y otra para necesidades internas en dos idiomas. GitHub Actions permite utilizar estrategias de matriz para ejecuciones en paralelo.

Problemas con el emulador en CI

El emulador de Android requiere virtualización de hardware, que no siempre está disponible en los servidores CI. KVM debe estar activado; de lo contrario, el emulador no se inicia. La solución es usar imágenes x86 sin aceleración GPU o Firebase Test Lab.

Preguntas frecuentes

¿En qué se diferencia Screengrab de una captura de pantalla normal mediante ADB?

ADB captura lo que se muestra en la pantalla en el momento actual. Screengrab se integra con las pruebas de UI, cambia automáticamente los idiomas y dispositivos, y realiza una serie de capturas según un escenario sin intervención humana.

¿Se puede usar Screengrab sin Fastlane?

No, Screengrab es un componente del ecosistema Fastlane y utiliza su infraestructura para compilar, instalar y coordinar. La librería screengrab-lib no funciona por separado: se necesita Fastlane como orquestador.

¿Cuánto tiempo se tarda en generar capturas de pantalla en 10 idiomas?

En un solo dispositivo, una ejecución en 10 idiomas tarda entre 15 y 25 minutos. Cada idioma requiere reinstalar la aplicación y un ciclo completo de pruebas de UI. La ejecución en paralelo en varios dispositivos reduce el tiempo proporcionalmente.

¿Admite Screengrab aplicaciones iOS?

, Screengrab admite iOS mediante XCTest y los simuladores de Xcode. La configuración es similar a la de Android: se añaden idiomas y dispositivos, y las pruebas de UI en Swift se escriben con XCTest y capturas mediante XCUIScreenshot.

¿Cómo actualizar las capturas solo para idiomas nuevos?

Screengrab no admite modo incremental: cada ejecución genera un conjunto completo de capturas. Se recomienda configurar un lane separado para CI con una lista limitada de idiomas para evitar sobrescribir las capturas existentes de la ejecución principal.

Resumen

  • Screengrab — un componente de Fastlane para automatizar capturas de pantalla de aplicaciones móviles en Android y iOS.
  • Automatización reemplaza la creación manual de cientos de capturas con un solo comando en la terminal.
  • Localización — la herramienta cambia automáticamente el idioma de la aplicación antes de cada ejecución de pruebas.
  • CI/CD — integración con Jenkins, GitHub Actions, GitLab CI y otros pipelines sin interfaz gráfica.
  • Estructura de los archivos de salida coincide con los requisitos de Google Play y App Store para carga directa.
  • Flexibilidad — soporte para múltiples dispositivos, orientaciones de pantalla y escenarios de prueba personalizados.
  • Ahorro — cien capturas en 15 minutos en lugar de varias horas de trabajo manual con cada actualización.

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.

Discutir el proyecto

Lea también