Вы собрали release AAB, загрузили в Play Console, а через час приходит отказ. Причина — не заполнен раздел App content или targetSdkVersion ниже требуемого. Помню случай, когда клиент потерял неделю из-за отсутствия Privacy Policy URL — теперь мы проверяем это на старте. Разбираем, как пройти ревью с первого раза и настроить процесс публикации так, чтобы каждый новый релиз занимал минуты. Мы, как мобильные разработчики с 5-летним опытом и 50+ успешными релизами, сталкивались с этим не раз. В этой статье делимся проверенными шагами и типичными подводными камнями, которые мы выявили на более чем 50 проектах. Наша команда работает с 2016 года и помогла десяткам стартапов выйти на рынок.
Подготовка листинга в 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 явно показывает список незаполненных разделов, поэтому здесь сложно запутаться.
Как подготовить 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 для загрузки и продвижения.
Треки и роллаут
Play Console разделяет продвижение по трекам:
| Трек | Доступ | Ограничение |
|---|---|---|
| Internal testing | До 100 тестеров по email | Моментальная публикация |
| Closed testing (Alpha) | Ограниченная группа | Моментальная публикация |
| Open testing (Beta) | Любой пользователь | Моментальная публикация |
| Production | Все пользователи | Ревью Google (обычно часы-дни) |
Правильный флоу: Internal → Closed → Open → Production. Продвижение из трека в трек через Promote release. AAB загружается один раз — в Internal, дальше тот же build number продвигается по трекам без повторной загрузки.
Phased rollout в Production
Google Play позволяет задать процент пользователей для постепенного раскатывания обновления. Можно остановить роллаут в любой момент, если в Firebase Crashlytics пошёл рост crash-rate. После остановки — либо исправить и загрузить новый билд, либо возобновить текущий.
Типичные причины отказа
Target API Level: Ранее Google регулярно повышал минимальный targetSdkVersion. Новые приложения должны таргетить актуальный API уровень. Обновления — не ниже предыдущего. Несоответствие — автоматический отказ при отправке в 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".
Как настроить Fastlane для автоматизации?
Fastlane позволяет автоматизировать сборку, загрузку и продвижение релизов. Основные компоненты:
-
Fastfile— описание действий (сборка, подпись, загрузка) -
Appfile— идентификатор приложения и путь к сервис-аккаунту -
Deliverfile— параметры загрузки в Google Play
Пример базового Fastfile:
lane :deploy_to_internal do gradle(task: "bundleRelease") upload_to_play_store(track: "internal") end 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 поддержка.
- Настройка Fastlane или Google Play Developer API для автоматизации релизов.
- Тестирование на треках Internal → Closed → Open.
- Продвижение в Production с Phased rollout.
- Документация по процессу и консультация.
Оценим ваш проект и подготовим план публикации. Свяжитесь с нами, чтобы получить консультацию. Получите бесплатную консультацию по вашему проекту — мы оценим текущее состояние и подскажем, как ускорить публикацию.
Ориентиры по срокам
| Этап | Время |
|---|---|
| Подготовка и публикация в Internal Testing | несколько часов |
| Прохождение ревью для Production (первый релиз) | часы – 3 дня |
| Полный процесс с настройкой CI/CD | 1–2 дня работы |
Google Play Console Help AAB лучше APK: размер загрузки меньше на 20–30% за счёт Dynamic Delivery.







