Публикация Android-приложения в Google Play
Google Play требует AAB (Android App Bundle) вместо APK с августа 2021 года для новых приложений. Загрузка APK в новый листинг — немедленный отказ. Старые приложения могут обновляться через APK, но AAB даёт меньший размер загрузки за счёт оптимизации под конкретное устройство через Dynamic Delivery.
Подготовка листинга в Play Console
Перед загрузкой первого билда нужно заполнить обязательный минимум в Play Console:
- App content: целевая аудитория, наличие рекламы, Privacy Policy URL
- Store listing: название (до 50 символов), краткое описание (80), полное описание (4000), скриншоты минимум для телефона, иконка 512×512 px, Feature Graphic 1024×500 px
- Content rating: заполнить опросник — IARC автоматически присвоит рейтинг для каждой страны
Без завершённого App content раздела — кнопка публикации заблокирована. Play Console явно показывает список незаполненных разделов, поэтому здесь сложно запутаться.
Треки и роллаут
Play Console разделяет продвижение по трекам:
| Трек | Доступ | Ограничение |
|---|---|---|
| Internal testing | До 100 тестеров по email | Моментальная публикация |
| Closed testing (Alpha) | Ограниченная группа | Моментальная публикация |
| Open testing (Beta) | Любой пользователь | Моментальная публикация |
| Production | Все пользователи | Ревью Google (обычно часы-дни) |
Правильный флоу: Internal → Closed → Open → Production. Продвижение из трека в трек через Promote release. AAB загружается один раз — в Internal, дальше тот же billd number продвигается по трекам без повторной загрузки.
Phased rollout в Production
10% → 20% → 50% → 100%
Google Play позволяет задать процент пользователей для постепенного раскатывания обновления. Можно остановить роллаут в любой момент, если в Firebase Crashlytics пошёл рост crash-rate. После остановки — либо исправить и загрузить новый билд, либо возобновить текущий.
Загрузка AAB
# Сборка release AAB
./gradlew bundleRelease
# Путь к артефакту
app/build/outputs/bundle/release/app-release.aab
Загрузить можно через Play Console вручную или через fastlane supply / Google Play Developer API.
# Fastlane Deliverfile для Google Play
package_name "com.example.app"
aab "app/build/outputs/bundle/release/app-release.aab"
track "internal"
release_status "completed"
json_key "path/to/service-account.json" # Service Account из Google Cloud
Service Account создаётся в Google Cloud Console, привязывается к Play Console через Setup → API access. Права: Release Manager для загрузки и продвижения.
Требования контента и частые причины отказа
Target API Level: Google регулярно повышает минимальный targetSdkVersion. На момент публикации новые приложения должны таргетить Android 14 (API 34). Обновления — минимум API 33. Несоответствие — автоматический отказ при отправке в Production.
Sensitive permissions: READ_CONTACTS, ACCESS_FINE_LOCATION, RECORD_AUDIO — требуют объяснения в App content → Permissions declaration. Без объяснения — предупреждение или отказ.
Privacy Policy: обязательна при любом сборе данных. Google проверяет доступность URL — если страница не отвечает при ревью, это причина для reject.
64-bit support: приложения должны поддерживать arm64-v8a. Нативные библиотеки только для armeabi-v7a — не пройдут. В Gradle: abiFilters "armeabi-v7a", "arm64-v8a", "x86", "x86_64".
Play App Signing
При первой загрузке AAB Google предложит Play App Signing — и это стоит принять. Google хранит ключ подписи, вы загружаете AAB с upload key. При потере upload key Google может его сбросить, в отличие от ситуации с самостоятельным хранением.
Важно: fingerprint сертификата для Firebase SHA-256 берётся с app signing key (видно в Play Console → Release → Setup → App signing), не с upload key.
Процесс работы
Настройка Play Console: App content, Store listing, Content rating, Privacy Policy.
Подготовка production AAB: signing config, targetSdkVersion, 64-bit поддержка.
Загрузка в Internal, тестирование, продвижение по трекам до Production.
Настройка Fastlane или Google Play Developer API для автоматизации последующих релизов.
Ориентиры по срокам
Подготовка и публикация в Internal Testing — несколько часов. Прохождение ревью для Production (первый релиз) — от нескольких часов до 3 дней. Полный процесс с настройкой CI/CD и автоматической публикацией — 1–2 дня работы.







