Come smettere di aprire App Store Connect nel browser e automatizzare tutto dal terminale
Chiunque abbia mai distribuito un'app su App Store conosce questo problema. L'interfaccia web di App Store Connect tende a bloccarsi, richiedere la ri-autenticazione nel momento più inopportuno e costringerti a cliccare il mouse per qualcosa di semplice come aggiungere una build a TestFlight.
Recentemente ho scoperto l'utility asc (App Store Connect CLI). È uno strumento console basato su Go, creato specificamente per eliminare il browser dalle routine di pubblicazione di app iOS e macOS.
Cos'è asc
Il progetto è scritto in Go, distribuito come singolo binario e funziona su macOS, Linux e Windows. Il vantaggio principale è che lo strumento è stato progettato dall'inizio senza prompt interattivi. Non ha bisogno di una conferma con Invio a meno che tu non la richieda specificamente. Questo lo rende comodo per script e pipeline in CI/CD.
Il formato di output si adatta all'ambiente. Se esegui i comandi nel terminale, l'utility disegna tabelle. Se il risultato va a un pipe o file, restituisce JSON pulito.
Funzionalità principali in pratica
L'utility copre quasi tutti i compiti per cui prima dovevi andare sul sito web Apple.
Caricamento di build e lavoro con TestFlight
Caricare un file .ipa o .pkg si fa con un singolo comando:
asc builds upload --app "123456789" --ipa "/path/to/MyApp.ipa"
Dopo di che, puoi immediatamente allegare la build ai tester. Per i team che sviluppano per macOS, c'è il supporto per una catena con il caricamento del .pkg e l'aggiunta della versione al gruppo di tester interni:
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"
Puoi leggere i log di crash e il feedback degli utenti da TestFlight direttamente dalla console.
Gestione dei metadati e ASO
Se un'app è localizzata in più lingue, aggiornare le descrizioni attraverso l'interfaccia web diventa tedioso. L'utility esporta le localizzazioni in una directory locale, ti permette di modificarle e poi applica le modifiche:
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
Per l'ottimizzazione ASO, c'è il comando asc metadata keywords audit. Controlla la presenza di keyword duplicate, ripetizioni tra le localizzazioni, conflitti con il nome dell'app e eccedenze di byte.
Lavorare con gli screenshot
Gli screenshot possono essere caricati in batch da cartelle, specificando il tipo di dispositivo richiesto:
asc screenshots upload --version-localization "LOCALIZATION_ID" --path "./screenshots/en-US" --device-type "IPHONE_65" --replace
Autorizzazione senza problemi in CI/CD
In un ambiente locale, l'utility può memorizzare le chiavi nel Keychain di sistema. Ma sui server CI (GitHub Actions, GitLab CI, Bitrise), il Keychain spesso non è disponibile. Gli sviluppatori hanno previsto il flag --bypass-keychain e il caricamento della configurazione da un file o variabili d'ambiente:
asc auth login \
--bypass-keychain \
--name "MyCIKey" \
--key-id "ABC123" \
--issuer-id "DEF456" \
--private-key /path/to/AuthKey.p8
Puoi verificare che le tue chiavi siano valide prima di avviare una build lunga con un apposito comando di validazione:
asc auth doctor
Vale la pena adottarlo
Se rilasci un'app una volta all'anno, i pannelli web di Apple potrebbero essere sufficienti. Ma per rilasci regolari, lavoro con più localizzazioni o costruzione di CI/CD trasparenti, l'utility fa risparmiare ore di lavoro.
Il progetto è sviluppato attivamente, riceve feedback positivi dagli sviluppatori mobile e si integra facilmente negli script shell esistenti.
Progetti correlati