¿Qué hace asc-shots-pipeline?
Orquestra la automatización de capturas de pantalla en iOS con xcodebuild/simctl para compilación y ejecución, AXe para acciones de UI, archivos JSON de configuración y planificación, enmarcado basado en Koubou (asc screenshots frame) y carga de capturas (asc screenshots upload). Úsalo cuando los usuarios soliciten captura automatizada de pantallas, flujos de simulador con AXe, composición de marcos o pipelines de captura a carga.
Requisitos previos
- Xcode 13 o superior instalado
- Herramientas de línea de comandos de Xcode (
xcode-select --install) - Ruby (para AXe, si es necesario)
- Node.js (para Koubou y el script
asc)
Instalación
-
Clona este repositorio:
git clone https://github.com/rudrankriyam/asc-shots-pipeline.git cd asc-shots-pipeline -
Instala las dependencias:
npm install -
Asegúrate de que AXe esté configurado (consulta la documentación de AXe).
Uso
1. Compilar y ejecutar la app
Usa xcodebuild y simctl para compilar y lanzar tu app en un simulador:
xcodebuild -project TuApp.xcodeproj -scheme TuApp -destination 'platform=iOS Simulator,name=iPhone 14' build
xcrun simctl boot "iPhone 14"
xcrun simctl install booted path/to/TuApp.app
xcrun simctl launch booted com.tudominio.tuapp
2. Definir plan de capturas
Crea un archivo plan.json:
[
{
"device": "iPhone 14",
"locale": "es-ES",
"screenshots": [
{
"name": "PantallaPrincipal",
"action": "wait",
"duration": 2
},
{
"name": "ListaItems",
"action": "tap",
"element": "button[aria-label='ListaItems']",
"duration": 1
}
]
}
]
3. Capturar pantallas con AXe
Ejecuta AXe para realizar las acciones y capturar las pantallas:
axe --plan plan.json --output capturas/
4. Enmarcar las capturas
Usa el comando asc screenshots frame para aplicar marcos de dispositivo:
asc screenshots frame --input capturas/ --output enmarcadas/ --frame iPhone14 --locale es-ES
5. Cargar las capturas
Sube las capturas enmarcadas con asc screenshots upload:
asc screenshots upload --input enmarcadas/ --api-key TU_API_KEY_ASC
Archivos de configuración
settings.json
Define la configuración general del pipeline:
{
"project": "TuApp.xcodeproj",
"scheme": "TuApp",
"devices": ["iPhone 14", "iPhone 14 Plus", "iPad Pro 11"],
"locales": ["en-US", "es-ES", "fr-FR"],
"outputDir": "capturas",
"frameDir": "enmarcadas",
"uploadEnabled": true
}
plan.json
Define los planes detallados de captura por dispositivo y locale (ver ejemplo arriba).
Comandos disponibles
| Comando | Descripción |
|---|---|
asc screenshots capture | Captura pantallas según el plan |
asc screenshots frame | Aplica marcos de dispositivo a las capturas |
asc screenshots upload | Carga las capturas enmarcadas a ASC |
asc pipeline run | Ejecuta el pipeline completo (captura, enmarcado, carga) |
Notas
- Este pipeline asume que tienes configurado AXe con los selectores adecuados para tu app.
- Los marcos de dispositivo provienen de Koubou; asegúrate de tener los recursos de marcos instalados.
- La carga requiere una clave API de App Store Connect (
API_KEY). - Personaliza los archivos JSON según tus necesidades de idiomas, dispositivos y orientaciones.
Solución de problemas
- Error de compilación: Verifica que el esquema y proyecto existan en Xcode.
- AXe no encuentra elementos: Asegúrate de que los selectores en el plan coincidan con la UI de tu app.
- Fallo en enmarcado: Comprueba que el nombre del dispositivo en el plan coincida con los marcos disponibles en Koubou.
- Error de carga: Verifica que la clave API de ASC sea válida y tenga permisos de subida.
Licencia
Este proyecto está bajo la Licencia MIT.