# Пошаговое руководство: как опубликовать частное приложение в Google Play и установить его на Android

> AI Release · @ai_release1 · https://ai-release.org/guides/poshagovoe-rukovodstvo-kak-opublikovat-chastnoe-prilozh.html

Приложение готово, но выкладывать его на всеобщее обозрение рано: оно нужно только вашей команде, заказчику или узкому кругу пользователей. Этот гайд — о том, как провести сборку через Google Play Console (веб-консоль разработчика, где публикуются приложения для Android) по закрытому контуру и поставить её на Android-устройство, не открывая приложение всему миру. Инструкция не привязана к конкретной версии Android: она подходит и для телефонов, и для планшетов, где есть Google Play. Мы разберём два сценария — внутренний тестовый трек (закрытый канал распространения сборки) и private app в Managed Google Play (корпоративный каталог приложений для сотрудников организации).

## Требования и подготовка
![Иллюстрация к разделу «Требования и подготовка»](https://ai-release.org/guides/img/poshagovoe-rukovodstvo-kak-opublikovat-chastnoe-prilozh-ru-1.jpg)


- Аккаунт разработчика Google Play с пройденной проверкой личности и оплаченным разовым регистрационным взносом.
- Установленный JDK и Android-проект, который собирается через Gradle (сборочная система, которая превращает исходники в готовый файл приложения).
- Файл ключа подписи keystore (хранилище с закрытым ключом, которым подписывается релиз) — например, `private-release.jks`.
- Собранный релиз в формате AAB (Android App Bundle — формат загрузки в Google Play, из которого магазин сам собирает нужный APK для устройства).
- APK (Android Package Kit — обычный установочный файл, который можно поставить на телефон вручную) для быстрой проверки через adb.
- Список e-mail тестировщиков — адреса Google-аккаунтов, которые будут ставить сборку.
- Тестовое Android-устройство с Google Play, где активен именно тот Google-аккаунт, который вы внесёте в список.
- Утилита adb (Android Debug Bridge — консольный мост между компьютером и телефоном) для локальной установки.

## Пошаговая инструкция
![Иллюстрация к разделу «Пошаговая инструкция»](https://ai-release.org/guides/img/poshagovoe-rukovodstvo-kak-opublikovat-chastnoe-prilozh-ru-2.jpg)


1. Зафиксируйте имя пакета и версию. Откройте `app/build.gradle` (или `build.gradle.kts`) и проверьте блок `defaultConfig`.

**Пример:**
```gradle
defaultConfig {
    applicationId "com.example.myprivateapp"
    versionCode 1
    versionName "1.0"
}
```
Ожидаемый результат: имя пакета вида `com.example.myprivateapp` и версия `1.0` зафиксированы. Почему это важно: имя пакета — уникальный идентификатор приложения, после первой загрузки в Play его уже нельзя изменить.

2. Создайте ключ подписи. В терминале выполните:

**Пример:**
```bash
keytool -genkeypair -v \
  -keystore private-release.jks \
  -alias private_key \
  -keyalg RSA -keysize 2048 -validity 10000
```
Ожидаемый результат: утилита спросит пароль и данные организации, затем выведет строку вида «Generating 2 048 bit RSA key pair» и создаст файл `private-release.jks`. Почему это работает: Google Play принимает только подписанные сборки, а keystore — единственное доказательство, что релиз выпустили именно вы. Сразу сделайте резервную копию файла и пароля.

3. Пропишите подпись в Gradle и соберите бандл.

**Пример:**
```bash
./gradlew bundleRelease
```
Ожидаемый результат: в папке `app/build/outputs/bundle/release/` появится файл `app-release.aab`. Почему это работает: Google Play требует именно AAB — из него магазин сам нарезает APK под конкретное устройство, и бандл весит меньше для пользователя.

4. Проверьте сборку локально, до загрузки в магазин.

**Пример:**
```bash
adb devices
adb install -r app/build/outputs/apk/release/app-release.apk
```
Ожидаемый результат: команда `adb devices` покажет серийный номер подключённого телефона, а `adb install` завершится словом `Success`. Почему это работает: вы ловите ошибки запуска до модерации, а не после неё.

5. Создайте приложение в Google Play Console: раздел «Все приложения» → «Создать приложение». Укажите название, язык по умолчанию, тип «Приложение», статус «Бесплатное» и поставьте галочку согласия с политиками. Ожидаемый результат: появляется карточка приложения с пустым списком треков.

6. Заполните обязательные разделы карточки: описание, иконка, скриншоты, политика конфиденциальности, рейтинг контента, целевая аудитория, категория. Ожидаемый результат: в сводке публикации исчезают красные отметки «Требуется действие». Без этого трек не опубликуется, даже если он закрытый.

7. Загрузите бандл во внутренний трек. Откройте «Тестирование» → «Внутреннее тестирование» → «Создать новый выпуск», загрузите `app-release.aab`, добавьте заметки к выпуску и сохраните. Ожидаемый результат: сборка получает статус «Готово к публикации», номер версии виден в списке.

8. Добавьте тестировщиков. На вкладке «Тестировщики» создайте список e-mail-адресов и вставьте его в поле. Ожидаемый результат: после сохранения появляется ссылка вида `https://play.google.com/apps/internaltest/...` — её и отправляете людям. Почему так: обычный поиск в Google Play приложение не найдёт, пока вы не выпустите его в общий доступ.

9. Если приложение нужно только внутри организации, используйте Managed Google Play (корпоративный каталог приложений). Там private app публикуется для конкретной организации и не появляется в общем поиске Google Play. Ожидаемый результат: приложение видно только аккаунтам вашего домена.

10. Когда выпусков становится много, рутину стоит автоматизировать — об этом подробно в гайде [Как автоматизировать публикацию приложений в App Store и Google Play с помощью ИИ-агентов](https://ai-release.org/guides/kak-avtomatizirovat-publikatsiyu-prilozheniy-v-app-stor.html?utm_source=tg&utm_medium=channel&utm_campaign=guide_inline&utm_content=guide_to_guide). Ожидаемый результат: загрузка бандла и заполнение заметок к релизу перестают быть ручными шагами.

Чек-лист перед публикацией трека:

- [ ] Имя пакета и `versionCode` зафиксированы и увеличены относительно прошлого выпуска
- [ ] Keystore сохранён и забэкаплен в двух местах
- [ ] `app-release.aab` собран в режиме release, а не debug
- [ ] Обязательные разделы карточки заполнены
- [ ] Список e-mail тестировщиков добавлен и сохранён
- [ ] Трек переведён в статус публикации

## Возможные проблемы и решения
![Иллюстрация к разделу «Возможные проблемы и решения»](https://ai-release.org/guides/img/poshagovoe-rukovodstvo-kak-opublikovat-chastnoe-prilozh-ru-3.jpg)


**Симптом: тестировщик открывает ссылку и видит «Приложение не найдено» или «Элемент не найден».**
Причина почти всегда в аккаунте: на устройстве активен другой Google-адрес, не входящий в список. Решение: откройте на телефоне «Настройки» → «Аккаунты» и убедитесь, что нужный e-mail добавлен и выбран в Google Play; затем проверьте, что адрес внесён в список тестировщиков и список сохранён; после этого подождите — изменения в Play растекаются не мгновенно.

**Симптом: при загрузке бандла ошибка вида «App bundle was signed with the wrong key» или «ключ не совпадает».**
Причина — сборка подписана другим keystore, чем в предыдущем выпуске. Решение: не создавайте новый ключ «наугад»; найдите исходный файл `.jks` и пароль, пересоберите бандл с ним и загрузите заново. Если ключ потерян безвозвратно, обращайтесь в поддержку Play — самостоятельно сбросить подпись нельзя.

**Симптом: приложение доступно вам, но не устанавливается на телефон коллеги — магазин пишет «недоступно в вашей стране».**
Причина — в настройках трека не отмечены страны распространения. Решение: в треке откройте «Страны и регионы», добавьте нужную страну, сохраните и опубликуйте изменения. Ожидаемый результат: ссылка начинает открываться у всех из списка тестировщиков.

Если Google Play по каким-то причинам недоступен, как альтернативный канал на Android посмотрите [Как скачивать и устанавливать ИИ-приложения на Android через RuStore](https://ai-release.org/guides/kak-skachivat-i-ustanavlivat-ii-prilozheniya-na-android.html?utm_source=tg&utm_medium=channel&utm_campaign=guide_inline&utm_content=guide_to_guide).

## FAQ

**Можно ли опубликовать приложение только для сотрудников, а не для всех?**
Да. Для небольшой команды подходит внутренний или закрытый трек: сборка видна только людям из списка e-mail. Для организации с собственным доменом есть Managed Google Play — там private app появляется в корпоративном каталоге и не индексируется в обычном поиске магазина.

**Что загружать в Google Play — APK или AAB?**
В Google Play загружается AAB: магазин сам собирает из него установочный файл под конкретное устройство. APK пригодится для быстрой проверки вручную — например, через `adb install`.

**Увидят ли приложение обычные пользователи, пока идёт тестирование?**
Нет. Пока вы не выпустите сборку в открытый доступ, приложение не находится поиском в Google Play, а ссылку получают только тестировщики из списка.

**Нужно ли проходить модерацию для закрытого трека?**
Да, проверка касается любого выпуска. Первый выпуск обычно рассматривается дольше последующих, поэтому закладывайте запас по времени и не планируйте демонстрацию «завтра утром».

**Как выпустить обновление?**
Увеличьте `versionCode` в `build.gradle`, соберите новый `app-release.aab` тем же keystore и загрузите его в тот же трек. Тестировщики получат обновление обычным способом — через Google Play.
