Подключи свои аккаунты App Store и Google Play.
Что понадобится
Mokbi никогда не видит пароль от твоего стора. Вместо этого ты создаёшь ограниченный по правам ключ для каждого стора и вставляешь его один раз. Он проверяется стором, хранится в зашифрованном виде, и ты можешь отключить его в любой момент.
- Google Play: ключ service account в Google Cloud, скачанный как JSON-файл, из проекта с включённым Google Play Android Developer API, плюс этот service account, приглашённый в твой Play Console.
- App Store Connect: API-ключ, скачанный как файл
.p8, плюс его Key ID и Issuer ID твоей команды.
Это делается один раз для каждого стора. После этого публикация и повторная публикация — это одно нажатие. Начни с Google — там больше движущихся частей.
Google Play, часть 1: создание ключа service account
Это происходит в Google Cloud Console (console.cloud.google.com).
- Создай или выбери проект, например «Mokbi Publisher».
- Перейди в APIs & Services → Library, найди Google Play Android Developer API и нажми Enable.
- Перейди в APIs & Services → Credentials → Create credentials → Service account. Дай ему имя, например
mokbi-play-publisher. Роли проекта можно оставить пустыми — реальные права выдаются через Play Console в части 2. - Открой service account, перейди на вкладку Keys, затем Add key → Create new key → JSON — и скачай файл. Именно этот JSON ты вставляешь в Mokbi.
client_emailвнутри него (заканчивается на.iam.gserviceaccount.com) — это адрес, который ты пригласишь на следующем шаге, так что держи его под рукой.
Увидел ошибку «Service account key creation is disabled»? Это политика организации Google под названием iam.disableServiceAccountKeyCreation, по умолчанию включённая в рамках «Secure by Default». Отключи её для этого проекта: IAM & Admin → Organization Policies, найди Disable service account key creation, выбери Manage policy, укажи «Override parent's policy», поставь Enforcement: Off для этого проекта и нажми Save. Подожди пару минут и попробуй ключ ещё раз. Нужна роль Organization Policy Administrator — она есть у владельца организации, или он может её выдать.
Google Play, часть 2: выдача доступа в Play Console
Это тот шаг, на котором люди теряют часы, так что читай внимательно. Доступ к твоему приложению выдаётся только в Google Play Console (play.google.com/console) — никогда в Google Cloud IAM. Нужно проверить два места:
- Setup → API access: убедись, что проект Google Cloud с твоим service account здесь привязан. Без этой привязки ключ проходит аутентификацию, но получает 403 на каждом приложении.
- Users and permissions (внизу левой колонки, на уровне аккаунта): выбери Invite new users, вставь email service account (тот, что заканчивается на
.iam.gserviceaccount.com), затем в разделе App permissions добавь своё приложение и выдай как минимум Manage store presence. Этого одного разрешения на уровне приложения достаточно, чтобы публиковать текст листинга и скриншоты — Admin на уровне аккаунта не нужен.
Твоё приложение уже должно существовать в Play Console. API листинга редактирует существующий пакет, а не создаёт новое приложение, и загружать APK или AAB пока не нужно. Убедись, что имя пакета, указанное в Mokbi, точно совпадает с приложением.
Главный подвох: Cloud IAM — это не Play Console
Если постоянно получаешь PERMISSION_DENIED — почти всегда причина именно в этом. Google Cloud IAM (страница IAM & Admin → IAM в Cloud Console, где ты назначаешь «роли» service account) управляет доступом к ресурсам Google Cloud. Он никак не влияет на доступ к листингу твоего приложения в сторе. Назначение ролей там никогда не исправит ошибку доступа в сторе.
Доступ к приложению целиком находится в Play Console, в двух местах, описанных выше: привязка в API access и приглашение в Users and permissions. Настрой их — и тот же ключ, который возвращал 403, заработает.
Apple: создание API-ключа App Store Connect
Это происходит в App Store Connect (appstoreconnect.apple.com). Mokbi запрашивает три вещи: содержимое файла .p8, Key ID и Issuer ID.
- Перейди в Users and Access → Integrations → App Store Connect API. Этот раздел виден только Account Holder твоей команды или Admin. Если появится запрос — разреши использование team keys.
- Нажми Generate API Key, назови ключ (например, «Mokbi Publisher») и назначь ему роль App Manager.
- Скачай файл .p8. Скачать его можно только один раз, так что сохрани его в надёжном месте. Запиши Key ID, указанный рядом с ключом, и Issuer ID — UUID вверху страницы Keys.
Как и в Google, приложение уже должно существовать в App Store Connect. API редактирует существующий листинг, и загружать сборку не нужно. Публикация через Mokbi готовит версию за тебя и останавливается перед отправкой на проверку — Submit ты нажимаешь сам, в App Store Connect, когда будешь готов.
Подключение в Mokbi
Открой проект, перейди к шагу Публикация и используй кнопки подключения:
- Подключить Google Play: вставь полный JSON service account, затем нажми Проверить и подключить. Введи имя пакета и запусти Проверить соединение перед публикацией.
- Подключить App Store Connect: открой файл
.p8в текстовом редакторе, скопируй его содержимое, добавь Key ID и Issuer ID, затем нажми Проверить и подключить.
Каждый ключ проверяется в сторе перед сохранением, хранится в зашифрованном виде в нашем хранилище и в любой момент может быть отключён через Отключить.
Частые проблемы и как их исправить
«Service account key creation is disabled». Политика организации блокирует JSON-ключи. Отключи iam.disableServiceAccountKeyCreation для проекта (см. Google Play, часть 1), подожди две минуты и попробуй снова.
PERMISSION_DENIED или 403 на каждом приложении. Доступ не настроен в Play Console. Проверь, что проект Google Cloud привязан в Setup → API access и что email service account приглашён в Users and permissions с правом Manage store presence на твоё приложение. Роли в Cloud IAM тут не считаются.
Всё равно не работает сразу после выдачи доступа. Изменения прав применяются не мгновенно — им нужно несколько минут. Пересохрани разрешение в Play Console (открой его и сохрани заново) или немного подожди, затем запусти Проверить соединение ещё раз. Для быстрой проверки: временно выдай service account Admin на уровне аккаунта — если тестовый запуск после этого проходит, значит, дело было в доступе на уровне приложения или в привязке проекта.
Не то приложение, или ничего не происходит. Имя пакета в Mokbi должно точно совпадать с приложением в Play Console, и приложение должно уже существовать в обеих консолях. API листинга редактирует существующее приложение и никогда не создаёт новое.
Потерял файл .p8. Apple даёт скачать его только один раз. Если он утерян — отзови этот ключ в App Store Connect, создай новый и переподключи его в Mokbi.