Comment Arrêter d'Ouvrir App Store Connect dans le Navigateur et Tout Automatiser depuis le Terminal
Quiconque a déjà déployé une application sur l'App Store connaît cette galère. L'interface web d'App Store Connect adore freezer, demander une ré-authentification au moment le plus malvenu, et vous forcer à cliquer pour quelque chose d'aussi simple qu'ajouter une build à TestFlight.
Récemment, je suis tombé sur l'utilitaire asc (App Store Connect CLI). C'est un outil en ligne de commande basé sur Go, créé spécifiquement pour supprimer le navigateur des routines de publication d'apps iOS et macOS.
Ce qu'est asc
Le projet est écrit en Go, distribué sous forme de binaire unique, et fonctionne sur macOS, Linux et Windows. L'avantage principal est que l'outil a été conçu dès le départ sans invites interactives. Il n'a pas besoin d'une confirmation par Entrée sauf si vous le demandez spécifiquement. Cela le rend pratique pour les scripts et les pipelines en CI/CD.
Le format de sortie s'adapte à l'environnement. Si vous exécutez des commandes dans le terminal, l'utilitaire dessine des tableaux. Si le résultat est redirigé vers un pipe ou un fichier, il sort du JSON propre.
Fonctionnalités principales en pratique
L'utilitaire couvre presque toutes les tâches auxquelles vous deviez aller sur le site web d'Apple.
Téléchargement de builds et travail avec TestFlight
Le téléchargement d'un fichier .ipa ou .pkg se fait avec une seule commande :
asc builds upload --app "123456789" --ipa "/path/to/MyApp.ipa"
Après cela, vous pouvez immédiatement attacher la build aux testeurs. Pour les équipes qui construisent pour macOS, il y a le support d'une chaîne avec le téléchargement du .pkg et l'ajout de la version au groupe de testeurs internes :
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"
Vous pouvez lire les logs de crash et les retours utilisateurs de TestFlight directement depuis la console.
Gestion des métadonnées et ASO
Si une app est localisée dans plusieurs langues, mettre à jour les descriptions via l'interface web devient fastidieux. L'utilitaire exporte les localisations vers un répertoire local, vous permet de les éditer, puis applique les modifications :
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
Pour l'optimisation ASO, il y a la commande asc metadata keywords audit. Elle vérifie les mots-clés en double, les répétitions entre les locales, les conflits avec le nom de l'app, et les dépassements d'octets.
Travail avec les captures d'écran
Les captures d'écran peuvent être téléchargées par lots depuis des dossiers, en spécifiant le type d'appareil requis :
asc screenshots upload --version-localization "LOCALIZATION_ID" --path "./screenshots/en-US" --device-type "IPHONE_65" --replace
Autorisation sans douleur en CI/CD
Dans un environnement local, l'utilitaire peut stocker les clés dans le Keychain du système. Mais sur les serveurs CI (GitHub Actions, GitLab CI, Bitrise), le Keychain est souvent indisponible. Les développeurs ont prévu le flag --bypass-keychain et le chargement de configuration depuis un fichier ou des variables d'environnement :
asc auth login \
--bypass-keychain \
--name "MyCIKey" \
--key-id "ABC123" \
--issuer-id "DEF456" \
--private-key /path/to/AuthKey.p8
Vous pouvez vérifier que vos clés sont valides avant de lancer un long build avec une commande de validation spéciale :
asc auth doctor
Vaut-il le coup d'être adopté
Si vous publiez une app une fois par an, les panneaux web d'Apple peuvent suffire. Mais pour des publications régulières, un travail avec plusieurs localisations, ou une CI/CD transparente, l'utilitaire fait gagner des heures de travail.
Le projet est activement développé, reçoit des retours positifs des développeurs mobiles, et s'intègre facilement dans les scripts shell existants.
Projets similaires