Jak przestać otwierać App Store Connect w przeglądarce i zautomatyzować wszystko z terminala
Każdy, kto kiedykolwiek wdrażał aplikację w App Store, zna ten ból. Interfejs webowy App Store Connect lubi się zawieszać, żądać ponownego uwierzytelnienia w najbardziej nieodpowiednim momencie i zmuszać do klikania myszą nawet przy tak prostych czynnościach jak dodanie builda do TestFlight.
Niedawno natknąłem się na narzędzie asc (App Store Connect CLI). To konsolowe narzędzie oparte na Go, stworzone specjalnie po to, aby wyeliminować przeglądarkę z procesów publikowania aplikacji iOS i macOS.
Czym jest asc
Projekt jest napisany w Go, dystrybuowany jako pojedynczy plik binarny i działa na macOS, Linux i Windows. Główną zaletą jest to, że narzędzie zostało zaprojektowane od początku bez interaktywnych monitów. Nie wymaga potwierdzenia klawiszem Enter, chyba że wyraźnie o to poprosisz. To sprawia, że jest wygodne w skryptach i pipeline'ach CI/CD.
Format wyjściowy dostosowuje się do środowiska. Jeśli uruchamiasz polecenia w terminalu, narzędzie rysuje tabele. Jeśli wynik trafia do potoku lub pliku, wyświetla czysty JSON.
Główne funkcje w praktyce
Narzędzie obejmuje prawie wszystkie zadania, do których wcześniej musiałeś odwiedzać stronę Apple.
Upload buildów i praca z TestFlight
Upload pliku .ipa lub .pkg odbywa się za pomocą jednego polecenia:
asc builds upload --app "123456789" --ipa "/path/to/MyApp.ipa"
Po tym możesz natychmiast dołączyć build do testerów. Dla zespołów budujących na macOS, jest dostępne wsparcie dla łańcucha z uploadem .pkg i dodaniem wersji do grupy testerów wewnętrznych:
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"
Możesz czytać logi crashy i opinie użytkowników z TestFlight bezpośrednio z konsoli.
Zarządzanie metadanymi i ASO
Jeśli aplikacja jest zlokalizowana w wielu językach, aktualizowanie opisów przez interfejs webowy staje się żmudne. Narzędzie eksportuje lokalizacje do lokalnego katalogu, pozwala je edytować, a następnie stosuje zmiany z powrotem:
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
Do optymalizacji ASO jest dostępne polecenie asc metadata keywords audit. Sprawdza ono duplikaty słów kluczowych, powtórzenia między lokalizacjami, konflikty z nazwą aplikacji i przekroczenia limitu bajtów.
Praca ze zrzutami ekranu
Zrzuty ekranu można uploadować partiami z folderów, określając wymagany typ urządzenia:
asc screenshots upload --version-localization "LOCALIZATION_ID" --path "./screenshots/en-US" --device-type "IPHONE_65" --replace
Autoryzacja bez bólu w CI/CD
W środowisku lokalnym narzędzie może przechowywać klucze w Keychain systemu. Ale na serwerach CI (GitHub Actions, GitLab CI, Bitrise) Keychain często jest niedostępny. Deweloperzy udostępnili flagę --bypass-keychain i ładowanie konfiguracji z pliku lub zmiennych środowiskowych:
asc auth login \
--bypass-keychain \
--name "MyCIKey" \
--key-id "ABC123" \
--issuer-id "DEF456" \
--private-key /path/to/AuthKey.p8
Możesz sprawdzić, czy klucze są ważne przed rozpoczęciem długiego builda za pomocą specjalnego polecenia walidacji:
asc auth doctor
Czy warto wdrożyć
Jeśli wydajesz jedną aplikację raz w roku, panele webowe Apple mogą być wystarczające. Ale przy regularnych wydaniach, pracy z wieloma lokalizacjami lub budowaniu przejrzystego CI/CD, narzędzie oszczędza godziny pracy.
Projekt jest aktywnie rozwijany, otrzymuje pozytywne opinie od deweloperów mobilnych i łatwo integruje się z istniejącymi skryptami powłoki.
Powiązane projekty