Тема
Расширенный локальный preflight Android-релиза
Актуальность: 1 сентября 2026 года. Этот этап дополняет обычную Gradle- сборку, но не заменяет Play Console, Play App Signing и тест доставленной из Google Play сборки.
Что проверять локально
- Собрать проект штатной командой и сохранить package, version, SDK и SHA-256.
- Проверить AAB официальным
bundletool, а APK —apksigner,zipalignиaaptиз закреплённого Android SDK. - Построить из AAB device-specific APK Set и установить его на AVD/устройство. Это ближе к Play delivery, чем установка универсального debug APK.
- Запустить instrumentation-тесты именно модуля приложения. В сгенерированном Capacitor-проекте общий
connectedCheckможет захватить служебный Cordova- модуль с устаревшим тестовым шаблоном; проверенная команда —:app:connectedDebugAndroidTest. - Проверить offline cold start, основной flow, Back, background/resume, recreation, сохранение и адаптивные размеры окна.
Общие команды этого workspace:
bash
scripts/install-bundletool.sh
scripts/aab-inspect.sh path/to/app-release.aab path/to/app-debug.apkbundletool закреплён в версии 1.18.3 и проверяется по SHA-256. Для временной локальной установки APK Set допустим отдельный эфемерный test key в /tmp. Он не является upload key, не попадает в репозиторий и ничего не доказывает о production signing.
16 KB memory pages
Для приложений, targeting API 35+, Google Play требует 16 KB compatibility на 64-bit устройствах. По актуальной Android-документации с 1 февраля 2027 года обновления без такой поддержки нельзя выпускать.
- Pure Java/Kotlin/WebView app без
.soуже совместимо на уровне native code. - AAB всё равно проверяется на
PAGE_ALIGNMENT_16K, а APK — черезzipalign -c -P 16 -v 4. - Если появляется любая native library, нужны свежие NDK/AGP, аудит каждого SDK и runtime-тест на реальном 16 KB system image. Обычный 4 KB AVD этот пункт не доказывает.
Как не принять проблему AVD за проблему приложения
После boot-complete дождитесь стабилизации System UI, затем начинайте замер cold start. Системный ANR сразу после загрузки эмулятора фиксируется отдельно и не засчитывается ни как падение приложения, ни как успешный smoke. Повторите сценарий после ожидания и проверьте package-scoped Logcat.
Граница локальной проверки
Локально нельзя подтвердить:
- подпись владельческим upload key и Play App Signing;
- install/update именно Play-delivered splits;
- автоматический pre-launch report на матрице Google;
- закрытое тестирование и production access конкретного аккаунта;
- правдивость юридических, Data Safety, IARC и monetization declarations;
- device verification нового Personal account — для него нужен физический Android-девайс и приложение Play Console.
Перед выпуском используйте release runbook и Google Play policy preflight.