AAB или APK: что загружать в Google Play
Чем AAB отличается от APK, что загружать в Google Play, как работают ключ подписи и Play App Signing и что делать, если потерян ключ загрузки.
В Google Play нужно загружать AAB (Android App Bundle): с августа 2021 года новые приложения принимаются только в этом формате. APK остаётся форматом для установки напрямую, для тестов и для других магазинов. Вместе с AAB работает Play App Signing: Google хранит ключ подписи приложения, а вы подписываете сборки ключом загрузки, который при потере можно сбросить через Play Console.
Что такое AAB и APK простыми словами
APK это готовый установочный файл Android. Его можно скачать, передать в WhatsApp и установить на телефон. Внутри лежит всё сразу: графика под все размеры экранов, код под все типы процессоров, все языки.
AAB это «заготовка» для Google Play. Вы загружаете один файл, а Google сам собирает из него APK под конкретный телефон покупателя: только его язык, его плотность экрана, его процессор. Поэтому приложение из стора весит меньше, чем универсальный APK, а пользователь быстрее его скачивает.
Установить AAB на телефон напрямую нельзя. Это формат для публикации, а не для раздачи.
Для владельца бизнеса разница ощутима в двух местах. Первое: вес приложения. Для доставки в Астане, где клиент скачивает приложение прямо у двери ресторана по мобильному интернету, лишние десятки мегабайт означают, что часть людей не дождётся установки. Второе: контроль над подписью. С APK ключ целиком на вашей стороне, и его потеря фатальна. С AAB и Play App Signing главный ключ хранит Google, а потеря вашего ключа исправляется заявкой.
AAB или APK: сравнение
| Параметр | AAB | APK |
|---|---|---|
| Новые приложения в Google Play | Обязателен с августа 2021 | Не принимается |
| Установка на телефон напрямую | Нельзя | Можно |
| Кто подписывает версию для пользователей | Google через Play App Signing | Вы своим ключом |
| Размер загрузки у пользователя | Меньше, только нужные ресурсы | Все ресурсы сразу |
| Лимит размера в Google Play | До 200 МБ сжатой загрузки на устройство, больше через Play Asset Delivery | Для старых APK-приложений 100 МБ |
| Другие магазины и корпоративная раздача | Зависит от магазина | Принимается почти везде |
Практический вывод для бизнеса: в Google Play всегда AAB. Если вы параллельно публикуетесь в других магазинах или раздаёте приложение сотрудникам через MDM, собирайте ещё и APK из того же кода.
Два ключа: подписи и загрузки
Путаница с ключами стоит компаниям больше всего нервов, поэтому разберём по шагам.
- Ключ подписи приложения (app signing key). Им подписаны APK, которые получают пользователи. Android проверяет, что обновление подписано тем же ключом, что и установленная версия. При Play App Signing этот ключ хранит Google в своей защищённой инфраструктуре, и вы его не теряете.
- Ключ загрузки (upload key). Хранится у вас. Им подписывается каждый AAB перед загрузкой в Play Console, так Google понимает, что сборка пришла от вас. Google рекомендует, чтобы ключ загрузки и ключ подписи были разными.
Новые приложения подключаются к Play App Signing автоматически. Для приложения, которое вела другая студия, стоит один раз проверить в Play Console раздел подписи приложения: включена ли Play App Signing и какие сертификаты там указаны. Отпечатки оттуда же нужны для входа через Google, карт и настройки App Links.
Как собрать AAB
- Создать ключ загрузки. В Android Studio через Build, Generate Signed Bundle или командой keytool. Получится файл .jks или .keystore, пароль к нему и имя (alias) ключа.
- Сохранить ключ в надёжном месте. Минимум две копии: корпоративный менеджер паролей и резервное хранилище компании.
- Собрать бандл. В нативном проекте через Gradle задачу bundleRelease, во Flutter командой
flutter build appbundle --release. - Проверить версию. У каждой загрузки должен расти versionCode, иначе Play Console отклонит файл.
- Проверить требования Google. С 31 августа 2026 года новые приложения и обновления должны нацеливаться на Android 16 (API 36). Сборка со старым targetSdk просто не загрузится.
- Загрузить в тестовый трек, проверить на реальных телефонах и только потом выпускать в рабочую версию. Порядок публикации подробно описан в статье как опубликовать приложение в Google Play.
Что делать, если потерян ключ загрузки
Ситуация частая: программист уволился, ноутбук сломался, фрилансер пропал. Если приложение использует Play App Signing, это решаемо.
- Создайте новый ключ загрузки.
- Экспортируйте его сертификат в формат PEM, например командой
keytool -export -rfc -keystore upload-keystore.jks -alias upload -file upload_certificate.pem. - В Play Console откройте раздел подписи приложения и нажмите запрос на сброс ключа загрузки. Сделать это может пользователь с правами администратора.
- Загрузите PEM-файл и дождитесь одобрения. Срок и дата, с которой новый ключ начнёт действовать, приходят в уведомлении от Google.
- Подписывайте новым ключом все следующие сборки. Пользователи ничего не заметят, обновления придут как обычно.
Меню Play Console Google периодически переименовывает, поэтому если не нашли пункт сразу, ищите по словам «подпись приложения» или «app signing» в поиске консоли.
Если потерян ключ подписи
Это тяжёлый случай, и он касается только старых приложений, которые подписывались собственным ключом без Play App Signing. Без этого ключа выпустить обновление нельзя: Android не установит его поверх текущей версии. Остаётся выпускать новое приложение с другим именем пакета и переводить пользователей на него, теряя отзывы, рейтинг и позиции в поиске.
Если у вас такое старое приложение и ключ пока на месте, подключите Play App Signing и передайте ключ Google через Play Console. Это страховка на будущее. Как поступить с устаревшим приложением целиком, разбираем в статье об обновлении устаревшего приложения.
Смена подрядчика: что забрать
Чаще всего проблемы с ключами всплывают, когда компания меняет студию или фрилансера. Пока всё работает, никто не спрашивает, где лежит ключ. Вспоминают, когда нужно срочно выпустить обновление, например под новые требования Google, а собрать подписанную сборку некому.
При передаче проекта заберите:
- исходный код приложения в репозитории, который принадлежит компании;
- файл ключа загрузки (.jks или .keystore), пароль к хранилищу, alias и пароль ключа;
- для старых приложений без Play App Signing: ключ подписи со всеми паролями;
- доступы к Firebase, картам и другим сервисам, где прописаны отпечатки сертификатов;
- инструкцию по сборке: версия Flutter или Android Gradle Plugin, команды, переменные окружения.
Проверить, что ключ именно тот, просто: попросите нового разработчика собрать тестовый AAB и загрузить его во внутренний трек. Если Play Console принял сборку без ошибки о неверном ключе, всё в порядке. Если нет, сразу запускайте сброс ключа загрузки, пока приложение не нуждается в срочном обновлении.
Если приложение досталось в запущенном состоянии, начните с аудита: мы проверяем код, зависимости, ключи и соответствие требованиям сторов в рамках доработки приложений, стоимость аудита от 500 000 ₸.
Частые ошибки
- Ключ загрузки лежит только у разработчика. Уходит человек, уходит ключ. Храните ключи и пароли в компании.
- Аккаунт разработчика оформлен на частное лицо. Тогда и сброс ключа, и любые действия зависят от этого человека. Как оформить на компанию, описано в статье про аккаунт разработчика Apple и Google.
- Debug-ключ в релизе. Сборку подписали отладочным ключом, и Play Console её не принимает.
- Отпечаток не того ключа в настройках Firebase, входа через Google или карт. В тестах всё работает, в версии из стора вход и карты ломаются.
- Раздача AAB вместо APK тестировщикам и сотрудникам: файл не устанавливается. Для внутренних тестов используйте внутренний трек Google Play.
Частые вопросы
Можно ли сейчас загрузить в Google Play APK?
Для новых приложений нет: с августа 2021 года Google Play принимает новые приложения только в формате AAB. APK остался для старых приложений, опубликованных до этого срока, и для распространения вне Google Play.
Что будет, если потерять ключ загрузки?
Ничего страшного, если приложение использует Play App Signing. Владелец аккаунта или администратор запрашивает сброс ключа загрузки в Play Console, после одобрения вы подписываете сборки новым ключом, а пользователи обновляются как обычно.
А если потерян ключ подписи приложения?
Если приложение подключено к Play App Signing, ключ подписи хранит Google и потерять его нельзя. Если приложение старое и подписывалось вашим собственным ключом без Play App Signing, без этого ключа обновить его невозможно: придётся выпускать новое приложение с другим именем пакета.
Где взять APK, если приложение собрано как AAB?
Для тестов APK можно получить из AAB утилитой bundletool или скачать готовые APK в Play Console в разделе с бандлами. Для других магазинов обычно собирают отдельную сборку APK.
Кто должен хранить ключ загрузки?
Компания-владелец приложения, а не конкретный программист. Файл ключа и пароли храните в корпоративном менеджере паролей, копию передайте ответственному лицу, а в договоре со студией пропишите их передачу.
Поможем с публикацией и ключами
Проверим, как подписано ваше приложение, наведём порядок с ключами и доступами, соберём AAB под актуальные требования Google и выпустим обновление. Если ключ потерян, пройдём процедуру сброса вместе с вами. Оставьте заявку на странице контактов или напишите в WhatsApp +7 707 928 13 15, смету пришлём бесплатно за 24 часа.