Сборка и подписание билдов игр для Google Play

Наша компания по разработке видеоигр ведет независимые проекты, совместно с клиентом создает игры и оказывает дополнительные операционные услуги. Опыт нашей команды позволяет нам охватить все игровые платформы и разработать потрясающий продукт, соответствующий видению клиента и предпочтениям игроков.

От иммерсивных приложений до игровых миров и 3D-сцен

Наша выделенная команда для VR/AR/MR-разработки, Unity-продакшна и 3D-моделирования и анимации с собственными кейсами и презентациями.

Посетить персонализированный сайт
Показано 1 из 1 услугВсе 242 услуг
Сборка и подписание билдов игр для Google Play
Средняя
~1 рабочий день
Часто задаваемые вопросы

Наши компетенции

Какие этапы разработки игры?

Последние работы

  • image_games_mortal_motors_495_0.webp
    Разработка игры для компании Mortal Motors
    683
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    Пошаговая стратегия в фэнтези сеттинге With Fire And Sword
    862
  • image_games_second_team_604_0.webp
    Разработка игры для компании Second term
    491
  • image_games_phoenix_ii_606_0.webp
    3D-анимация — тизер для игры phoenix 2.
    533

Сборка и подписание билдов игр для Google Play

APK залит в Play Console, проходит ревью — и через два часа приходит отказ: «Your APK is not signed with the upload key». Или сборка принята, но через неделю пользователи сообщают, что при обновлении Android просит «удалить старую версию перед установкой» — потому что keystore сменился между релизами, а Play App Signing не был активирован вовремя.

Android-сборка для Google Play менее церемониальна, чем iOS, но ошибки в управлении ключами подписи могут обернуться потерей аккаунта или невозможностью обновить уже опубликованное приложение.

Keystore и Play App Signing — в чём разница

До Play App Signing (обязательно с августа 2021 для новых приложений) разработчик подписывал APK своим ключом — и этот же ключ видел пользователь. Потеря keystore = невозможность выпускать обновления навсегда.

С Play App Signing схема двухуровневая: upload key (в руках разработчика) подписывает APK при загрузке в Play Console, Google его верифицирует и переподписывает финальный APK своим app signing key перед доставкой пользователям. Потеря upload key решаема — Google позволяет его сменить по запросу. Потеря app signing key — нет, но он хранится у Google.

При первой публикации нового приложения Play App Signing включается автоматически. Для существующих приложений — нужна явная активация с загрузкой текущего ключа.

Сборка AAB вместо APK

С 2021 года Google Play требует Android App Bundle (.aab) для новых приложений. Unity генерирует AAB через BuildOptions с BuildAppBundle = true. AAB весит меньше APK и позволяет Play Console генерировать оптимизированные APK под конкретное устройство (ABI split, texture compression split).

Важный нюанс для Unity-игр: при использовании IL2CPP и AAB нужно проверить, что Split Application Binary включён в Player Settings — иначе AAB может превысить лимит в 150 МБ при загрузке. Дополнительные ассеты (Addressables, StreamingAssets) должны поставляться через Play Asset Delivery (PAD), а не включаться напрямую в бандл.

Play Asset Delivery — обязательная тема для игр с крупными ресурсами. Три режима доставки: install-time (вместе с установкой, до 1 ГБ), fast-follow (сразу после установки), on-demand (по запросу во время игры). Интеграция с Unity через Google.Play.AssetDelivery пакет — требует переработки системы загрузки ресурсов, если она не проектировалась под PAD с самого начала.

Автоматизация через Fastlane

supply (Fastlane lane для Google Play) умеет загружать AAB в конкретный трек (internal, alpha, beta, production), управлять rollout percentage, обновлять store listing.

Аутентификация — через Service Account JSON с ролью «Release Manager» в Play Console. Это надёжнее OAuth — токен не истекает и не требует интерактивной авторизации на CI.

Пример минимального Fastfile:

  • gradle action для сборки AAB с нужным build type
  • sign через jarsigner или zipalign + apksigner с keystore из переменных окружения
  • supply для загрузки в internal track

Keystore хранится в зашифрованном виде в CI (GitHub Secrets, GitLab CI Variables, Vault). Никогда не коммитим .jks или .keystore файлы в репозиторий — даже в приватный.

Версионирование

versionCode в Android должен монотонно возрастать. В Unity — это PlayerSettings.Android.bundleVersionCode. Автоматически инкрементируем через скрипт в pre-build hook или через Fastlane increment_version_code. Для CI-сборок удобно использовать номер билда пайплайна как вклад в versionCode: baseVersion * 1000 + buildNumber.

Сроки

Задача Срок
Разовая сборка AAB и загрузка в internal track 0.5–1 день
Настройка Play App Signing + ключей для CI 1–2 дня
Полный пайплайн (GameCI + Fastlane supply + треки) 2–5 дней
Play Asset Delivery интеграция 1–3 недели

Стоимость рассчитывается после анализа текущей структуры проекта и состояния ключей подписи.