Как перестать открывать вебуху App Store Connect и автоматизировать всё из терминала

30 июл 2026
7,492
629
19
1 неделя

Каждый, кто хоть раз выкатывал приложение в App Store, знает эту боль. Веб-интерфейс App Store Connect любит зависать, требовать повторной авторизации в самый неудобный момент и заставлять кликать мышкой ради банального добавления сборки в TestFlight.

Недавно я наткнулся на утилиту asc (App Store Connect CLI). Это консольный инструмент на Go, созданный специально для того, чтобы убрать браузер из рутины публикации iOS и macOS приложений.

Что представляет собой asc

Проект написан на Go, распространяется одним бинарником и работает на macOS, Linux и Windows. Главный плюс — инструмент изначально проектировался без интерактивных промптов. Ему не нужно подтверждение по нажатию Enter, если вы сами этого не попросите. Это делает его удобным для скриптов и пайплайнов в CI/CD.

Выходной формат подстраивается под окружение. Если запускать команды в терминале, утилита рисует таблицы. Если результат уходит в пайп или файл, она отдаёт чистый JSON.

asc -- App Store Connect CLI

Реклама

Главные возможности на практике

Утилита закрывает практически все задачи, ради которых раньше приходилось ходить на сайт Apple.

Загрузка сборок и работа с TestFlight

Отправка .ipa или .pkg файла делается одной командой:

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

После этого можно сразу привязать сборку к тестировщикам. Для команд, собирающих под macOS, поддерживается цепочка с загрузкой .pkg и добавлением версии в группу внутренних тестировщиков:

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"

Прямо из консоли можно читать крэш-логи и отзывы пользователей TestFlight.

Управление метаданными и ASO

Если приложение локализовано на десяток языков, менять описания через веб-интерфейс — мучение. Утилита выгружает локализации в локальную директорию, дает отредактировать их и накатить обратно:

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

Для ASO-оптимизации есть команда asc metadata keywords audit. Она проверяет дубли ключевых слов, повторы между локалями, пересечения с названием приложения и перерасход байтов.

Работа со скриншотами

Скриншоты можно загружать пачками из папок, задавая нужный тип устройства:

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

Авторизация без боли в CI/CD

В локальном окружении утилита может хранить ключи в системном Keychain. Но на CI-серверах (GitHub Actions, GitLab CI, Bitrise) Keychain часто недоступен. Разработчики предусмотрели флаг --bypass-keychain и загрузку конфигурации из файла или переменных окружения:

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

Проверить валидность ключей перед запуском долгого билда можно специальной командой проверки:

asc auth doctor

Стоит ли внедрять

Если вы выпускаете одно приложение раз в год, веб-панели Apple может и хватить. Но для регулярных релизов, работы с несколькими локализациями или построения прозрачного CI/CD утилита экономит часы работы.

Проект активно развивается, собирает положительные отзывы мобильных разработчиков и легко встраивается в имеющиеся шелл-скрипты.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.