Об этом проекте

App Store Connect CLI (`asc`) — быстрый, скриптуемый инструмент командной строки для автоматизации рабочих процессов App Store Connect на платформах iOS, macOS, tvOS и visionOS. ### Установка - Homebrew: `brew install asc` - Скрипт установки: `curl -fsSL https://asccli.sh/install | bash` - WinGet: `winget install Rorkai.ASC --exact` - Бинарные файлы доступны в релизах на GitHub; сборка из исходников требует версию Go, указанную в go.mod. ### Аутентификация API-ключи генерируются на appstoreconnect.apple.com. Аутентификация: ```bash asc auth login --name "MyApp" --key-id "ABC123" --issuer-id "DEF456" --private-key /path/to/AuthKey.p8 --network ``` Индивидуальные API-ключи пропускают `--issuer-id` и используют `--key-type individual`. Для CI или headless-окружений передавайте `--bypass-keychain`. Проверка через `asc auth status --validate` или `asc auth doctor`. ### Настройки вывода `asc` использует вывод `table` в интерактивных терминалах и `json` в пайпах/CI. Переопределить глобально через `ASC_DEFAULT_OUTPUT` или для отдельной команды через `--output json --pretty`. ### Основные рабочие процессы **TestFlight и сборки:** ```bash asc apps list --output table asc builds upload --app "APP_ID" --ipa "/path/to/MyApp.ipa" asc testflight groups list --app "APP_ID" ``` **Отправка в App Store:** ```bash asc publish appstore --app "APP_ID" --ipa "/path/to/MyApp.ipa" --version "1.2.3" --submit --confirm asc status --app "APP_ID" --watch ``` **Валидация и ревью:** ```bash asc validate --app "APP_ID" --version "1.2.3" asc review status --app "APP_ID" asc validate --app "APP_ID" --version "1.2.3" --deep ``` Глубокая валидация проверяет App Privacy, соглашения и вложения подписок через авторизованные веб-эндпоинты Apple без интерактивных запросов. **Метаданные и локализация:** ```bash asc localizations list --app "APP_ID" --type app-info asc metadata apply --app "APP_ID" --version "1.2.3" --dir "./metadata" --dry-run asc metadata keywords audit --app "APP_ID" --version "1.2.3" --blocked-terms-file "./blocked-terms.txt" ``` Аудит ключевых слов сообщает о дубликатах, пересечениях с названием/подзаголовком приложения, использовании байтового бюджета и заблокированных терминах. **Скриншоты и медиа:** ```bash asc screenshots plan --app "APP_ID" --version "1.2.3" --review-output-dir "./screenshots/review" asc screenshots apply --app "APP_ID" --version "1.2.3" --review-output-dir "./screenshots/review" --confirm ``` Матричный захват скриншотов для различных устройств, локалей и внешнего вида поддерживается через JSONC plan-файл. **Подписывание и bundle ID:** ```bash asc bundle-ids capabilities list --bundle "BUNDLE_ID" asc signing fetch --bundle-id com.example.app --profile-type IOS_APP_STORE --output .asc/signing asc signing sync pull --repo [email protected]:team/signing.git --password-file ~/.config/asc/signing-sync-password --output-dir .asc/signing/pulled ``` `signing fetch` загружает сертификаты и provisioning profiles. `signing sync` делится идентичностями через зашифрованное Git-хранилище. Используйте `--create-missing` для создания недостающих ключа/сертификата/профиля за один проход. **Автоматизация рабочих процессов:** ```bash asc workflow validate --output json asc workflow run --dry-run testflight_beta VERSION:1.2.3 ``` **Xcode Cloud:** ```bash asc xcode-cloud run --workflow-id "WORKFLOW_ID" --pull-request-id "PR_ID" asc xcode-cloud build-runs get --id "BUILD_RUN_ID" ``` **Apple Ads и StoreKit:** Для кампаний Apple Ads и StoreKit Retention Messaging используются отдельные OAuth-учётные данные. См. `asc ads auth login` и `asc storekit auth login` для настройки. ### Навыки агентов 25 проверенных навыков автоматизации `asc` доступны по адресу https://github.com/rorkai/app-store-connect-cli-skills. Установка глобально через `asc install-skills`, который фиксирует выбранный коммит и проверяет каждый файл. ### Конфиденциальность и телеметрия Псевдонимная телеметрия на уровне команд отправляется по умолчанию для отслеживания надёжности. События включают версию CLI, ОС, архитектуру, путь команды, длительность и HTTP-статус при сбоях. Они исключают сырые аргументы, учётные данные, идентификаторы аккаунтов Apple, bundle ID и пути к файлам. Отключить через `ASC_TELEMETRY_DISABLED=1`, `DO_NOT_TRACK=1` или `asc telemetry disable`. ### Документация - `docs/CI_CD.md` — интеграция с GitHub Actions, GitLab, Bitrise, CircleCI - `docs/WORKFLOWS.md` — паттерны от локального Xcode до TestFlight - `commands/signing.mdx` — настройка подписывающих идентичностей и ротация в CI - `guides/apple-ads-playbooks.mdx` — руководства оператора Apple Ads - `docs/API_NOTES.md` — особенности и поведение API - `docs/PARITY.md` — оставшиеся области паритета Встроенная справка является авторитетной: `asc <command> --help`. Лицензия: MIT. Неофициальный инструмент, не связанный с Apple Inc.