Эта инструкция проведёт тебя через все шаги: от настройки основных параметров в vivaCRM до создания приложения в Google Play Console и подключения Firebase для пуш-уведомлений.

:::callout{type="tip"}
Убедись, что у тебя уже есть зарегистрированный аккаунт разработчика в Google Play Console и проект в Firebase. Если нет — сначала прочитай нашу статью о регистрации в Google Play Console.

:::

## Шаг 1. Открой настройки мобильного приложения в vivaCRM

:::step
Нажми на раздел [[Управление]] в верхнем меню, чтобы перейти к настройкам системы.

![Шаг 1](https://562807.selcdn.ru/smstretching/d470226b-2d13-48f7-943a-f730a0b9e1dd)

:::

:::step
В выпадающем меню выбери [[Основные настройки]].

![Шаг 2](https://562807.selcdn.ru/smstretching/d4d9d1a3-cc91-49b1-80c5-e8b56c3b90df)

:::

:::step
Нажми на вкладку [[Мобильное приложение]].

![Шаг 3](https://562807.selcdn.ru/smstretching/8884b7c1-ae3c-4e35-89d6-8f2b37b4acd2)

:::

:::step
Нажми на блок [[Сертификаты доступов и основная информация]] — именно с этого шага начинается подготовка к запуску релиза Android-приложения.

![Шаг 4](https://562807.selcdn.ru/smstretching/6fb9fd9b-176f-4ab1-990e-f1d41c334325)

:::

---

## Шаг 2. Заполни основные параметры приложения

:::step
Нажми на поле [[Название приложения]] и введи название своего приложения. Запомни его — оно понадобится при создании приложения в Google Play Console.

![Шаг 5](https://562807.selcdn.ru/smstretching/f82ae4c3-9072-40dc-8332-80e97d740c32)

:::

:::callout{type="info"}
Поля [[Публичный номер версии]] и [[Внутренний код версии]] заполнять на этом этапе не обязательно. Настройки под iOS можно пропустить и сразу перейти к блоку Android.

:::

:::step
Найди поле [[Android Application ID]] и нажми на иконку копирования рядом с ним. Этот идентификатор понадобится при создании приложения в Google Play Console и в Firebase.

![Шаг 8](https://562807.selcdn.ru/smstretching/a77d5df6-2a96-4c34-935b-33add38fd3a5)

:::

:::callout{type="warning"}
Один и тот же Android Application ID должен использоваться **везде**: в vivaCRM, при создании приложения в Google Play Console и при добавлении приложения в Firebase. После первой публикации в Google Play изменить его невозможно — если он где-то разойдётся хоть на один символ, публикация упадёт с ошибкой «denied access to this app».

:::

---

## Шаг 3. Создай приложение в Google Play Console

:::step
Перейди в [Google Play Console](https://play.google.com/console) и нажми кнопку [[Создать приложение]].

![Шаг 10](https://562807.selcdn.ru/smstretching/849db5ae-3d39-4a7b-b459-7900c633e29a)

:::

:::step
В поле [[Название приложения]] введи то же название, которое ты указывал в настройках vivaCRM.

![Шаг 11](https://562807.selcdn.ru/smstretching/b28292a9-75df-4e6a-aeba-50ec97c959da)

:::

:::step
Нажми на поле [[App package name]] и вставь скопированный ранее Android Application ID из настроек vivaCRM.

![Шаг 13](https://562807.selcdn.ru/smstretching/1d03debf-1f63-47bb-b8c0-96c8bd8ee753)

:::

:::step
Нажми на поле языка (по умолчанию стоит [[Английский (Соединенные Штаты) – en-US]]) и выбери [[Русский – ru-RU]] или другой язык, актуальный для твоего приложения.

![Шаг 15](https://562807.selcdn.ru/smstretching/bb606b03-05a9-441f-bb7b-4921bf6a9b86)

![Шаг 17](https://562807.selcdn.ru/smstretching/6af85438-684f-4e6a-9f13-dc9d2bbd58e1)

:::

:::step
* Выбери тип **«Приложение»** (не «Игра»).

![Шаг 19](https://562807.selcdn.ru/smstretching/929084ae-0c69-431c-a66d-1c1f66e45814)

* Выбери **«Бесплатно»** — само приложение скачивается бесплатно, платные услуги внутри него при этом возможны.

![Шаг 20](https://562807.selcdn.ru/smstretching/7841cdc6-3d09-41b0-9a0a-881d1f91f08a)

:::

:::step
Поставь обе галочки: согласие с правилами программы для разработчиков Google Play и с экспортным законодательством США.

![Шаг 24](https://562807.selcdn.ru/smstretching/323810ae-52ee-4ac7-8e1a-a57c3beccae5)

![Шаг 25](https://562807.selcdn.ru/smstretching/1a8f2d6f-9985-4ccb-87b7-a837e82d42c8)

Нажми кнопку [[Создать приложение]].

![Шаг 26](https://562807.selcdn.ru/smstretching/82f5b407-9944-48b1-be55-36c69a44909e)

:::

---

## Шаг 4. Настрой внутреннее тестирование

:::step
После создания приложения ты попадёшь в панель управления. Нажми [[Просмотреть задачи]], чтобы развернуть список необходимых шагов.

![Шаг 29](https://562807.selcdn.ru/smstretching/d95cfce6-fbe8-46bd-9c0d-d8aae7925a5f)

:::

:::step
Нажми [[Выберите тестировщиков]], чтобы добавить участников внутреннего тестирования.

![Шаг 30](https://562807.selcdn.ru/smstretching/b63d5a12-6a40-4406-93a2-ad0dd93a1c5c)

:::

:::step
Нажми [[Создать список рассылки]].

![Шаг 33](https://562807.selcdn.ru/smstretching/12bd4b45-beb1-4b48-b9c0-a93bc22e6129)

Введи любое название списка в поле [[Название списка]], например `vivaCRM Test`.

![Шаг 34](https://562807.selcdn.ru/smstretching/60223c14-4192-42dd-908c-03bd9afcb9a6)

:::

:::step
В поле [[Добавьте адреса электронной почты]] введи e-mail и нажми Enter.

![Шаг 36](https://562807.selcdn.ru/smstretching/bae2cd36-24ac-4a12-9562-15eca79f4427)

:::callout{type="warning"}
Используй только адреса в домене [**gmail.com**](http://gmail.com) — другие адреса Google Play не принимает. Если адрес помечен как недействительный, удали его и введи корректный gmail.com-адрес.

:::

:::

Нажми [[Сохранить изменения]].

![Шаг 38](https://562807.selcdn.ru/smstretching/881e1987-39b3-492a-8cc8-8ed208945cac)

Нажми [[Создать]], чтобы подтвердить создание списка.

![Шаг 39](https://562807.selcdn.ru/smstretching/0915ddd3-da60-41b6-87f3-70f7a0caeb35)

\
:::

:::step
При необходимости добавь ещё один e-mail в поле [[Добавьте адреса электронной почты]], нажми Enter для подтверждения.

![Шаг 40](https://562807.selcdn.ru/smstretching/f80267dd-eaf3-48f2-b4b9-c4cb31c8534f)

![Шаг 42](https://562807.selcdn.ru/smstretching/70c0101b-7c92-4d2a-9b7b-5b6e08342f89)

Нажми [[Сохранить изменения]], затем [[Создать]] и финально [[Сохранить]].

![Шаг 43](https://562807.selcdn.ru/smstretching/b0cc2379-29d5-4fc2-8372-8467cff1f9ca)

![Шаг 44](https://562807.selcdn.ru/smstretching/0a70b6b2-aa63-4ddc-8f5d-574a97721f50)

![Шаг 45](https://562807.selcdn.ru/smstretching/84941417-bbe5-44dd-bdb5-b0e47d9f6f74)

:::

:::step
Пункт [[Выберите тестировщиков]] должен быть отмечен как выполненный.

![Шаг 47](https://562807.selcdn.ru/smstretching/8b71752a-a71e-46b4-991c-ffad51895f58)

Нажми [[Создайте новый выпуск]], чтобы перейти к загрузке первой версии приложения. Пока что оставь эту страницу открытой — вернёшься к ней позже.

![Шаг 48](https://562807.selcdn.ru/smstretching/5ca624aa-cea0-4cd7-a5ab-51ad0daf0f5f)

:::

---

## Шаг 5. Настрой ссылки интеграции в vivaCRM

:::step
Вернись в vivaCRM → [[Основные настройки]] → [[Мобильное приложение]] → [[Сертификаты доступов и основная информация]].

Найди поле [[URL-схема]] и введи удобное название — оно будет использоваться для открытия приложения по прямым ссылкам на Android и iOS (например, `embargopp://`).

![Шаг 51](https://562807.selcdn.ru/smstretching/86a670b9-5e67-4486-b57b-f8b43a2f261f)

:::

:::step
Поле [[Домен Universal Links (iOS)]] можно пропустить, если не знаешь, для чего оно нужно.

![Шаг 53](https://562807.selcdn.ru/smstretching/38905655-ae01-42e4-913d-c65df08ac89a)

:::

---

## Шаг 6. Подключи Firebase для пуш-уведомлений

:::step
Перейди на [console.firebase.google.com](https://console.firebase.google.com). Выбери свой существующий проект из списка или создай новый с помощью **Create a new Firebase project**.

![Шаг 59](https://562807.selcdn.ru/smstretching/1b2d8910-d27a-48d7-9ef6-00dd434320ad)

:::

:::step
Внутри проекта нажми кнопку **Add app** и выбери платформу **Android**.

![Шаг 60](https://562807.selcdn.ru/smstretching/b60b9bd2-4d97-4f72-9756-46f8317e4fcd)

В поле **Android Package Name** вставь скопированный ранее Android Application ID из vivaCRM.

![Шаг 62](https://562807.selcdn.ru/smstretching/58b9c2ee-00b4-452f-b874-9e641c8dff50)

В поле **App Nickname** введи название своего мобильного приложения.

![Шаг 70](https://562807.selcdn.ru/smstretching/3befe554-6743-4114-9577-cf84dfc8f049)

:::

:::step
Нажми **Register app**.

![Шаг 80](https://562807.selcdn.ru/smstretching/90937d2d-0e46-4c7a-84a5-becf492e0a35)

На следующем шаге нажми **Download google-services.json** — этот файл понадобится для загрузки в vivaCRM.

![Шаг 81](https://562807.selcdn.ru/smstretching/d846987b-b40e-4490-a82d-63450ee39a8b)

Нажми **Next**, пропусти шаг с настройкой Firebase SDK и нажми **Next** ещё раз.

![Шаг 82](https://562807.selcdn.ru/smstretching/0c1ce03b-d034-41f6-8d21-b150670d5eea)

![Шаг 84](https://562807.selcdn.ru/smstretching/2ab6edfa-dc69-4e90-80ca-8aaca3629540)

Нажми **Continue to console**.

![Шаг 86](https://562807.selcdn.ru/smstretching/92e24d05-52ec-4492-9b8d-e0c813b7dd5e)

:::

:::step
В Firebase перейди в **Settings** → **General**.

![Шаг 87](https://562807.selcdn.ru/smstretching/74e38edf-c57d-4565-a96a-32826653a0a2)

![Шаг 88](https://562807.selcdn.ru/smstretching/d86442ef-0650-4f1b-bd60-69cd1cdcbd83)

Скопируй значение **Project ID** — оно понадобится для поля [[FCM Sender ID]] в vivaCRM.

![Шаг 89](https://562807.selcdn.ru/smstretching/cea40e0b-cd8d-424f-94e2-dcc35c777221)

:::

:::step
Вернись в vivaCRM и вставь скопированный Project ID в поле [[FCM Sender ID]].

![Шаг 93](https://562807.selcdn.ru/smstretching/7dc8179c-2078-40c9-8e72-ba05194dff8f)

![Шаг 94](https://562807.selcdn.ru/smstretching/797881c8-e417-4cfd-8392-fa93cc645652)

:::

---

## Шаг 7. Загрузи иконки и конфигурационные файлы

:::step
Нажми [[Загрузить]] рядом с полем иконки приложения и выбери файл размером **1024×1024 пикселей**.

![Шаг 99](https://562807.selcdn.ru/smstretching/7875e75e-49fb-4dc3-91ba-c49d9963027b)

:::callout{type="warning"}
Если ты загрузишь изображение неверного размера или формата, система покажет ошибку — просто загрузи файл в нужном формате.

:::

:::

:::

:::step
Сплэш-экран — это первое, что видит пользователь при открытии приложения.

* Нажми [[Загрузить]] для **светлой темы** и выбери логотип на светлом фоне.

![Шаг 105](https://562807.selcdn.ru/smstretching/e7980f7d-cb3e-4801-af33-483c2e757efe)

* Нажми [[Загрузить]] для **тёмной темы** и выбери логотип, хорошо видимый на тёмном фоне.

![Шаг 108](https://562807.selcdn.ru/smstretching/fb64de37-c0ed-4ecb-8f91-59c2774acfa9)

:::

:::step
Нажми [[Загрузить]] рядом с полем [[google-services.json (Android)]] и выбери скачанный ранее из Firebase конфигурационный файл.

![Шаг 112](https://562807.selcdn.ru/smstretching/91ff09a6-da4d-4120-b2eb-838c68a5928e)

![Шаг 114](https://562807.selcdn.ru/smstretching/a3efca28-db7b-4e78-957f-cb145033be11)

:::

---

## Шаг 8. Получи и загрузи Service Account из Firebase

:::step
В Firebase Console открой **Settings** → **Service Accounts**.

![Шаг 118](https://562807.selcdn.ru/smstretching/eb6b51f3-0b38-49c5-8729-6eecd95cb868)

:::

:::step
Нажми **Generate new private key**.

![Шаг 119](https://562807.selcdn.ru/smstretching/709f9756-49bd-477b-86cf-1d8f7f03ae5a)

В появившемся окне подтверди, нажав **Generate key** — файл JSON автоматически скачается.

![Шаг 120](https://562807.selcdn.ru/smstretching/9f651f8c-d721-47c1-970c-ec41b3ac5755)

:::

:::step
Вернись в vivaCRM. Нажми [[Загрузить]] рядом с полем [[Service Account (JSON, отправка push)]] и выбери скачанный файл.

![Шаг 122](https://562807.selcdn.ru/smstretching/7871668c-02ec-415a-b6bf-83948868c075)

![Шаг 124](https://562807.selcdn.ru/smstretching/218eaa07-7f4b-4654-886b-3819f933afd1)

:::

---

## Шаг 9. Получи ключ сервис-аккаунта Google Play

:::callout{type="warning"}
* **Service Account из Firebase** (Шаг 8) — нужен только для **отправки push-уведомлений**.

* **Ключ сервис-аккаунта Google Play** (этот шаг) — нужен для **автоматической публикации сборок** в Google Play.

Это разные файлы из разных мест. Ниже — про второй, публикующий.

:::

:::step
Перейди на главную страницу [Google Play Console](https://play.google.com/console) (не внутрь конкретного приложения) и нажми [[Настройки]] (Setup) в левом меню, затем — раздел **API access** (Доступ к API).

![Шаг 132](https://562807.selcdn.ru/smstretching/78b9ee5e-e250-4b45-b3c0-1d9b533c80b0)

:::

:::step
В разделе **API access** нажми **Create new service account** (Создать сервисный аккаунт). Google Play откроет ссылку на **Google Cloud Console** — перейди по ней, чтобы создать аккаунт на стороне Google Cloud.

* В Google Cloud Console нажми **Create service account** (Создать сервисный аккаунт).

* Задай любое имя (например, `google-play-publisher`) и нажми **Done** (Готово).

:::

:::step
В Google Cloud Console, в списке сервисных аккаунтов, открой только что созданный аккаунт → вкладка **Keys** (Ключи) → **Add key** → **Create new key** → тип **JSON** → **Create**.

JSON-файл ключа скачается автоматически. **Сохрани его** — именно его ты загрузишь в vivaCRM, и из него же берётся email аккаунта для выдачи доступа.

:::

:::callout{type="tip"}
Email нужен на следующих шагах (выдача доступа). Взять его можно двумя способами:

* **Из JSON-файла** — открой его текстовым редактором и найди поле `client_email`. Значение вида `имя@проект.iam.gserviceaccount.com`.

* **Из Google Cloud Console** — ☰ → **IAM & Admin → Service Accounts**, колонка **Email**.

:::

---

## Шаг 9а. Включи Google Play Android Developer API

:::callout{type="warning"}
Мало создать ключ — в том же проекте Google Cloud нужно **включить API**, через который идёт публикация. Если этого не сделать, сборка соберётся, но шаг выгрузки в Google Play упадёт с ошибкой `PERMISSION_DENIED`.

:::

:::step
Перейди в [console.cloud.google.com](https://console.cloud.google.com). Вверху убедись, что выбран **тот же проект**, в котором ты создавал сервисный аккаунт.

Слева ☰ → **APIs & Services → Library** (APIs и сервисы → Библиотека).

:::

:::step
В поиске введи **Google Play Android Developer API** (в русском интерфейсе — «API для разработчиков Android в Google Play»).

Открой его и нажми **Enable** (Включить). Если API уже включён — увидишь статус **«API включён»** и кнопку **Управлять**, дополнительно ничего делать не нужно.

:::

:::callout{type="info"}
После включения подожди **2–5 минут** — правам нужно время, чтобы распространиться.

:::

---

## Шаг 9б. Выдай сервис-аккаунту доступ к приложению

:::callout{type="warning"}
Даже с включённым API и рабочим ключом Google Play не пустит сервис-аккаунт к твоему приложению, пока ты явно не выдашь ему доступ. Симптом в vivaCRM: «Ключ отклонён: Google Play denied access to this app».

:::

:::step
Вернись в [Google Play Console](https://play.google.com/console) → раздел **API access** (там же, где создавал аккаунт). Напротив своего сервис-аккаунта нажми **Grant access** (Выдать доступ).

Либо через общий раздел: слева внизу **Users and permissions** (Пользователи и разрешения) → **Invite new user** (Пригласить нового пользователя) → в поле email вставь адрес сервис-аккаунта (`…@…iam.gserviceaccount.com` из Шага 9).

:::

:::step
На вкладке **App permissions** (Разрешения для приложений) → **Add app** → выбери своё приложение.

Отметь права на выпуск:

* **Release to testing tracks** — публикация в тестовые треки (минимум для Internal testing),

* при желании **Release to production** — публикация в продакшн.

Либо на вкладке **Account permissions** дай **Admin (all permissions)**, если не хочешь разбираться с отдельными галочками.

Нажми **Invite user** → **Send invitation** (или **Apply** для Grant access).

:::

:::callout{type="info"}
Сервис-аккаунт — не человек, письмо ему не приходит и подтверждать ничего не нужно. Доступ активен сразу после сохранения.

:::

:::step
Вернись в vivaCRM. Нажми [[Загрузить]] рядом с полем [[Ключ сервис-аккаунта Google Play (.json)]] и выбери скачанный на Шаге 9 JSON-файл.

![Шаг 134](https://562807.selcdn.ru/smstretching/cab858af-78d1-4e13-9871-71d08520d0db)

![Шаг 135](https://562807.selcdn.ru/smstretching/fe94e8c8-c943-4c58-a6c3-233da66481ea)

После загрузки vivaCRM проверит ключ. Если API включён (Шаг 9а) и доступ выдан (Шаг 9б) — ключ будет принят.

:::

---

## Шаг 10. Сохрани настройки и перейди к сборке

:::step
Нажми кнопку [[Сохранить]], чтобы сохранить все заполненные параметры.

![Шаг 138](https://562807.selcdn.ru/smstretching/b612e80c-b1ec-49de-87af-6a2b50cd9124)

:::

:::step
Прокрути страницу вниз и нажми на раздел **«Соберите готовое приложение и скачайте файлы для публикации в App Store и Google Play»**, чтобы перейти к сборке Android-приложения.

![Шаг 140](https://562807.selcdn.ru/smstretching/ef786808-5cd8-4f47-91ba-ab780e74cef4)

:::

---

## Шаг 11. Загрузи первый релиз вручную

:::callout{type="warning"}
Автоматическая публикация из vivaCRM **не умеет** создавать самый первый релиз приложения. Пока в Google Play Console нет ни одной загруженной версии, автопубликация будет отклоняться. Первый AAB нужно загрузить вручную — **один раз**. После этого все последующие сборки публикуются автоматически.

:::

:::step
После завершения сборки в vivaCRM скачай файл **.aab** (Android App Bundle) — это готовый пакет приложения для Google Play.

:::

:::step
Вернись в Google Play Console → **Testing → Internal testing** (Тестирование → Внутреннее тестирование) → **Create new release** (Создать новый выпуск).

Загрузи скачанный **.aab** в блок **App bundles**.

:::

:::step
Нажми **Next** / **Review release**, при необходимости заполни описание изменений и нажми **Start rollout to Internal testing** (Начать публикацию во внутреннем тестировании).

:::

:::callout{type="info"}
Перед первым релизом Google Play может потребовать заполнить обязательные разделы: политика конфиденциальности, контент-рейтинг, целевая аудитория, безопасность данных и т.д. Заполни их — без этого выпуск не запустится.

:::

:::callout{type="success"}
Все необходимые настройки для Android-приложения заполнены, API включён, сервис-аккаунту выдан доступ, а первый релиз загружен вручную. Теперь все последующие сборки из vivaCRM будут публиковаться в Google Play автоматически.

:::

---

## Частые ошибки при публикации

| Ошибка в vivaCRM                        | Причина                                                                                       | Что сделать                                                                                  |
| --------------------------------------- | --------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
| `PERMISSION_DENIED`                     | Не включён Google Play Android Developer API                                                  | Шаг 9а — включить API в том же проекте Google Cloud, подождать 2–5 минут                     |
| `Google Play denied access to this app` | Сервис-аккаунт не приглашён к приложению, либо приложение ещё не создано / нет первого релиза | Шаг 9б — выдать доступ (Grant access) с правом релиза; Шаг 11 — загрузить первый AAB вручную |
| Ключ принят, но публикация не идёт      | Не совпадает Application ID между vivaCRM, Google Play и Firebase                             | Проверить, что Application ID везде **идентичен** (Шаг 2)                                    |


