# Установка Clout App через App Store Connect API (https://clout.wtf/guide/ru/asc-api-guide/)



> **Note:** **Перед началом.** Сначала подготовь iPhone — Developer Mode включён, StandBy выключен, Appearance = Light, Auto-Lock = Never. Полный чек-лист: [Подготовка устройств →](https://clout.wtf/guide/ru/device-setup/)

Используй этот путь, когда установка по Apple ID падает с ошибкой `Authentication Error. Xcode 7.3 or later is required (resultCode 3019)`, или просто если не хочется хранить пароль Apple ID в приложении. Весь флоу занимает около двух минут.

## Это безопасно?

Да — это официальный, поддерживаемый Apple способ авторизации в developer-аккаунте. App Store Connect API использует короткоживущие **JWT-токены**, подписанные локально твоим приватным ключом `.p8`. Сам ключ никуда не уходит с твоей машины, пароль Apple ID нигде не сохраняется, штатная 2FA на аккаунте не трогается.

Clout Uploader работает строго в **development-песочнице** твоей команды:

* Создаются только **Development (тестовые) сертификаты и provisioning-профили** — те же самые, которые сгенерировал бы Xcode, если бы ты запускал проект на подключённом iPhone.
* Production / App Store / Distribution сертификаты и профили **не трогаются**. Приложения, опубликованные в App Store, билды в TestFlight и любые in-house Distribution-профили полностью независимы от этого флоу.
* Права API-ключа ограничены тем, что нужно для установки на зарегистрированные устройства. Отзыв ключа в App Store Connect мгновенно прекращает доступ.

Короче говоря: затрагиваются только тестовые установки на iPhone'ах, зарегистрированных для разработки — твои живые приложения и листинги в сторе работают ровно так же, как и раньше.

***

## Что понадобится

* Аккаунт Apple Developer с ролью не ниже **App Manager** — у роли Developer Apple блокирует создание signing-профилей.
* Ключ типа **Team Key** (не Individual Key), сгенерированный в App Store Connect.
* Скачанный файл приватного ключа **.p8** — Apple отдаёт его ровно один раз.

## 1. Сгенерировать Team Key в App Store Connect

Около двух минут.

1. Открой [appstoreconnect.apple.com/access/integrations/api](https://appstoreconnect.apple.com/access/integrations/api)
2. Переключись на вкладку **Team Keys** — **не** Individual Keys.
3. Нажми **Generate API Key**. Роль — **App Manager** или выше. Developer не подойдёт: Apple блокирует этой роли создание signing-профилей.
4. Apple покажет **Issuer ID** и **Key ID** и даст скачать файл **.p8**. Сохрани его сразу — второй попытки не будет.

> **Note:** **Обязательно:** именно Team Key (Individual-ключи не могут создавать signing-профили), роль App Manager или выше, `.p8` сохранён при первой загрузке.

## 2. Ввести ключ в Clout Uploader

1. Открой страницу **Devices**.
2. Разверни секцию **App Store Connect API**.
3. Заполни **Key ID**, **Issuer ID** и перетащи **.p8** в зону загрузки.
4. Нажми **Test connection & save**.

**Team ID** определяется автоматически из аккаунта. Если команда совсем новая и в ней ещё нет зарегистрированных идентификаторов, мастер спросит Team ID вручную — это 10-символьная строка в правом верхнем углу на [developer.apple.com/account](https://developer.apple.com/account).

## 3. Подписать и установить

После сохранения ключа кнопки **Install** и **Reinstall** становятся активны для каждого устройства. Подпись теперь идёт через JWT по App Store Connect API — старая авторизация по Apple ID полностью обходится.

Существующие сертификаты, профили и зарегистрированные UDID из старого пути продолжают работать — у Apple за обоими путями стоит один общий реестр, поэтому ничего перерегистрировать не нужно.

## Troubleshooting

| Сообщение                                                            | Что делать                                                                                                                                                                                                  |
| -------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| "This key is Individual"                                             | Ключ создан на вкладке Individual Keys. Пересоздай как **Team Key**.                                                                                                                                        |
| "Regenerate as App Manager →"                                        | Роль ключа слишком низкая. Перевыпусти ключ с ролью **App Manager** или выше.                                                                                                                               |
| "Open Apple Developer Portal →" (квота сертификатов 2/2)             | В команде закончилась квота сертификатов. Зайди в developer-портал, найди свой собственный orphan-сертификат (CREATED BY = твоё имя), отзови его и попробуй снова. Не трогай сертификаты других участников. |
| "Waiting for the first device's certificate to register with Apple…" | Ожидаемое поведение на парках от 5 устройств при первой параллельной установке — устройства 2..N ждут, пока первое зарегистрируется. Действий не требуется.                                                 |

## Чек-лист «установка настроена корректно»

* [ ] Ключ сгенерирован на вкладке **Team Keys** в App Store Connect
* [ ] Роль ключа — **App Manager** или выше
* [ ] Файл `.p8` сохранён при первой загрузке (повторно скачать не получится)
* [ ] Key ID, Issuer ID и `.p8` внесены в секцию App Store Connect API на странице Devices
* [ ] **Test connection & save** прошёл успешно — Team ID определился автоматически (или внесён вручную для совсем новой команды)

## Связанные гайды

* [Структура папок](https://clout.wtf/guide/ru/folder-structure-guide/) — как раскладывать медиа для режимов Upload, Warm-up и Seeding после того, как устройства настроены.
* [Режим Upload](https://clout.wtf/guide/ru/upload-guide/) — основной флоу публикаций после установки приложения.
