Cómo dejar de abrir App Store Connect en la web y automatizar todo desde la terminal
Cualquiera que haya desplegado una app en la App Store conoce este dolor. La interfaz web de App Store Connect tiende a congelarse, solicitar reautenticación en el momento más inoportuno y obligarte a hacer clic con el ratón para algo tan simple como añadir un build a TestFlight.
Hace poco descubrí la utilidad asc (App Store Connect CLI). Es una herramienta de consola basada en Go creada específicamente para eliminar el navegador de las rutinas de publicación de apps para iOS y macOS.
Qué es asc
El proyecto está escrito en Go, se distribuye como un único binario y funciona en macOS, Linux y Windows. La principal ventaja es que la herramienta fue diseñada desde el principio sin prompts interactivos. No necesita confirmación de Enter a menos que lo solicites específicamente. Esto la hace conveniente para scripts y pipelines en CI/CD.
El formato de salida se adapta al entorno. Si ejecutas comandos en la terminal, la utilidad dibuja tablas. Si el resultado va a un pipe o archivo, genera JSON limpio.
Funcionalidades principales en la práctica
La utilidad cubre casi todas las tareas para las que antes tenías que ir al sitio web de Apple.
Subir builds y trabajar con TestFlight
Subir un archivo .ipa o .pkg se hace con un único comando:
asc builds upload --app "123456789" --ipa "/path/to/MyApp.ipa"
Después de eso, puedes adjuntar inmediatamente el build a los probadores. Para equipos que construyen para macOS, hay soporte para una cadena con la subida del .pkg y añadir la versión al grupo de probadores internos:
asc builds upload --app "123456789" --pkg "./build/MyMacApp.pkg" --version "1.2.3" --build-number "42" --wait --output json
asc builds add-groups --app "123456789" --build-number "42" --version "1.2.3" --platform MAC_OS --group "Internal Testers"
Puedes leer los logs de crashes y los comentarios de usuarios de TestFlight directamente desde la consola.
Gestionar metadatos y ASO
Si una app está localizada en varios idiomas, actualizar las descripciones a través de la interfaz web se vuelve tedioso. La utilidad exporta las localizaciones a un directorio local, te permite editarlas y luego aplica los cambios:
asc metadata init --dir "./metadata" --version "1.2.3" --locale "en-US"
asc metadata apply --app "123456789" --version "1.2.3" --dir "./metadata" --dry-run
Para la optimización de ASO, existe el comando asc metadata keywords audit. Verifica si hay palabras clave duplicadas, repeticiones entre locales, conflictos con el nombre de la app y excesos de bytes.
Trabajar con capturas de pantalla
Las capturas de pantalla se pueden subir en lotes desde carpetas, especificando el tipo de dispositivo requerido:
asc screenshots upload --version-localization "LOCALIZATION_ID" --path "./screenshots/en-US" --device-type "IPHONE_65" --replace
Autorización sin dolor en CI/CD
En un entorno local, la utilidad puede almacenar claves en el Keychain del sistema. Pero en servidores CI (GitHub Actions, GitLab CI, Bitrise), Keychain a menudo no está disponible. Los desarrolladores proporcionaron el flag --bypass-keychain y la carga de configuración desde un archivo o variables de entorno:
asc auth login \
--bypass-keychain \
--name "MyCIKey" \
--key-id "ABC123" \
--issuer-id "DEF456" \
--private-key /path/to/AuthKey.p8
Puedes verificar que tus claves son válidas antes de iniciar un build largo con un comando de validación especial:
asc auth doctor
¿Vale la pena adoptarlo?
Si lanzas una app una vez al año, los paneles web de Apple pueden ser suficientes. Pero para lanzamientos regulares, trabajar con múltiples localizaciones o construir CI/CD transparente, la utilidad ahorra horas de trabajo.
El proyecto se desarrolla activamente, recibe comentarios positivos de desarrolladores móviles y se integra fácilmente en scripts de shell existentes.
Proyectos relacionados