>_ DevTrendsit

Lingua

Home

Linguaggi

Sezioni

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Sicurezza
Go

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.

asc -- App Store Connect CLI

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