>_ DevTrendsnl

Taal

Home

Talen

Secties

Frontend Backend Mobiel DevOps AI / ML GameDev Blockchain Embedded Beveiliging
Go

Stop met het Openen van App Store Connect in de Browser en Automatiseer Alles vanuit de Terminal

Iedereen die ooit een app naar de App Store heeft geüpload, kent deze frustratie. De App Store Connect-webinterface bevriest graag, vraagt op het meest ongelegen moment om opnieuw te authenticeren, en dwingt je om te klikken voor iets eenvoudigs als het toevoegen van een build aan TestFlight.

Onlangs stuitte ik op het asc-hulpprogramma (App Store Connect CLI). Het is een op Go gebaseerde console-tool die specifiek is gemaakt om de browser te verwijderen uit iOS- en macOS-app-publicatieroutines.

Wat asc is

Het project is geschreven in Go, gedistribueerd als een enkel binair bestand, en werkt op macOS, Linux en Windows. Het belangrijkste voordeel is dat de tool vanaf het begin is ontworpen zonder interactieve prompts. Het heeft geen Enter-toetsbevestiging nodig, tenzij je daar specifiek om vraagt. Dit maakt het handig voor scripts en pipelines in CI/CD.

Het uitvoerformaat past zich aan de omgeving aan. Als je commando's in de terminal uitvoert, tekent het hulpprogramma tabellen. Als het resultaat naar een pipe of bestand gaat, voert het schone JSON uit.

asc -- App Store Connect CLI

Belangrijkste functies in de praktijk

Het hulpprogramma dekt bijna alle taken waarvoor je vroeger naar de Apple-website moest gaan.

Builds uploaden en werken met TestFlight

Het uploaden van een .ipa- of .pkg-bestand wordt gedaan met een enkel commando:

asc builds upload --app "123456789" --ipa "/path/to/MyApp.ipa"

Daarna kun je de build direct aan testers koppelen. Voor teams die voor macOS bouwen, is er ondersteuning voor een keten met het uploaden van de .pkg en het toevoegen van de versie aan de interne testersgroep:

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"

Je kunt crashlogs en gebruikersfeedback van TestFlight rechtstreeks vanuit de console lezen.

Metadata en ASO beheren

Als een app in meerdere talen is gelokaliseerd, wordt het bijwerken van beschrijvingen via de webinterface vervelend. Het hulpprogramma exporteert localisaties naar een lokale map, laat je ze bewerken en past vervolgens de wijzigingen toe:

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

Voor ASO-optimalisatie is er het asc metadata keywords audit-commando. Het controleert op dubbele trefwoorden, herhalingen tussen locales, conflicten met de appnaam en byte-overschrijdingen.

Werken met schermafbeeldingen

Schermafbeeldingen kunnen in batches worden geüpload vanuit mappen, met opgave van het vereiste apparaattype:

asc screenshots upload --version-localization "LOCALIZATION_ID" --path "./screenshots/en-US" --device-type "IPHONE_65" --replace

Autorisatie zonder pijn in CI/CD

In een lokale omgeving kan het hulpprogramma sleutels opslaan in de systeem Keychain. Maar op CI-servers (GitHub Actions, GitLab CI, Bitrise) is Keychain vaak niet beschikbaar. De ontwikkelaars hebben de --bypass-keychain-vlag en configuratieladen uit een bestand of omgevingsvariabelen voorzien:

asc auth login \
  --bypass-keychain \
  --name "MyCIKey" \
  --key-id "ABC123" \
  --issuer-id "DEF456" \
  --private-key /path/to/AuthKey.p8

Je kunt verifiëren dat je sleutels geldig zijn voordat je een lange build start met een speciaal validatiecommando:

asc auth doctor

Is het de moeite waard om te adopteren

Als je één app één keer per jaar uitbrengt, zijn Apple's webpanelen misschien voldoende. Maar voor regelmatige releases, werken met meerdere localisaties of het bouwen van transparante CI/CD, bespaart het hulpprogramma uren werk.

Het project wordt actief ontwikkeld, ontvangt positieve feedback van mobiele ontwikkelaars en integreert gemakkelijk in bestaande shell-scripts.

Gerelateerde projecten