Как опубликовать игру в RuStore в 2026 году: Unity, AAB и подпись

Обновлено: 27 сентября 2026 года. Если вы хотите понять, как опубликовать игру в RuStore, ниже — практический путь на примере моей Unity-игры Train Survival: Night Run: от сборки AAB и настройки подписи до карточки приложения, скриншотов и отправки на модерацию.

Эта статья основана на моём реальном опыте и дополнена актуальной документацией RuStore и Unity. Я отдельно отмечу момент, на котором сам споткнулся: у меня была сборка в формате AAB, а для проверки на телефоне я попробовал получить APK через сторонний онлайн-конвертер. Получившийся APK не установился. Ниже разберём, почему AAB вообще не стоит воспринимать как обычный архив, который можно бездумно «переконвертировать» в APK.

RuStore — магазин приложений для Android

Коротко: что понадобится для публикации игры

Если отбросить детали, путь выглядит так: подготовить Android-версию проекта, настроить package name и версию, создать и сохранить ключ подписи, собрать APK или AAB, проверить сборку на реальном устройстве, создать приложение в RuStore Консоли, заполнить карточку, загрузить изображения и отправить версию на модерацию.

  • Unity с установленным Android Build Support;
  • готовая Android-сборка игры;
  • уникальный идентификатор приложения, например ru.hakster.gtrain;
  • keystore и ключ подписи, которые нужно хранить постоянно;
  • иконка, описание и скриншоты;
  • аккаунт разработчика в RuStore Консоли.

APK или AAB — что загружать в RuStore

RuStore принимает приложения в форматах APK и AAB. Это два разных сценария публикации.

APK — готовый устанавливаемый пакет Android. Его можно установить на устройство напрямую, если система разрешает установку из этого источника. Для публикации APK должен быть подписан вашим релизным ключом.

AAB (Android App Bundle) — формат публикации. Сам по себе AAB не предназначен для прямой установки на телефон. Магазин получает bundle и формирует из него APK, подходящие конкретному устройству. Именно поэтому попытка обращаться с AAB как с обычным APK часто приводит к путанице.

На момент написания статьи RuStore официально поддерживает оба формата. Для AAB у RuStore есть отдельная схема работы с ключом загрузки и подписью приложения. Подробности есть в документации по подписям и в инструкции по загрузке AAB.

Подготовка Unity-проекта перед сборкой

В Unity 6 процесс лучше пройти в таком порядке. Это соответствует текущей документации Unity по Android Build Profiles.

  1. Откройте File → Build Profiles. Если профиля Android ещё нет, нажмите Add Build Profile, выберите Android и переключитесь на него через Switch Profile.
  2. В Player Settings проверьте Application Identifier — например, у моей игры это ru.hakster.gtrain. Этот идентификатор должен совпадать с приложением в RuStore и не должен случайно меняться между обновлениями.
  3. Проверьте Version и Bundle Version Code. Для каждой новой версии в магазине Version Code должен увеличиваться.
  4. Если нужен AAB, в профиле Android отключите Export Project и включите Build App Bundle (Google Play). Несмотря на название параметра, Unity просто создаёт файл .aab; его можно загружать и в RuStore.
  5. Для релиза выключите Development Build, выберите свой keystore в Android Publishing Settings и соберите проект через Build. Для отдельной тестовой APK-сборки отключите Build App Bundle и соберите APK напрямую из Unity.

Официальная инструкция Unity: Building an application for Android. Если пункта Android в Build Profiles нет, установите Android Build Support через Unity Hub.

Самое важное: keystore и подпись приложения

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

Сделайте резервную копию keystore и сохраните пароль в надёжном месте. Не держите единственную копию ключа внутри папки Unity-проекта и не добавляйте его в публичный Git-репозиторий.

Если вы выпускаете обновление APK с другим сертификатом, Android не воспримет его как нормальное обновление установленного приложения. RuStore также отдельно предупреждает разработчиков о необходимости сохранять корректную подпись между версиями.

Как опубликовать игру в RuStore с AAB: настройка подписи

Для AAB в RuStore используются два разных ключа. Сборку AAB вы подписываете ключом загрузки. RuStore проверяет его сертификат, формирует APK для устройств и уже эти APK подписывает ключом подписи приложения. Поэтому перед первой загрузкой AAB в консоль нужно один раз настроить подпись приложения.

Как опубликовать игру в RuStore: экран загрузки AAB и подписи приложения

Экран из официальной инструкции RuStore: если подпись ещё не добавлена, в карточке новой версии появится предупреждение «Подпись не загружена» и кнопка загрузки.

Если AAB публикуется впервые

В RuStore Консоли откройте приложение → Загрузить версию → напротив предупреждения о подписи нажмите Загрузить. В открывшемся окне консоль попросит два файла: ZIP с подписью приложения и PEM-сертификат ключа загрузки. Для подготовки файлов нужна Java 11 или новее; RuStore требует RSA-ключ не менее 2048 бит.

Как опубликовать игру в RuStore: загрузка ZIP подписи приложения и PEM сертификата ключа загрузки

Шаг 1. Создайте ключ подписи приложения. RuStore разрешает сделать это через Android Studio или через keytool. Пример из официальной инструкции:

keytool -keystore ваше_хранилище_ключей.keystore -genkey -alias имя_ключа -keyalg RSA -validity 36500

Шаг 2. Подготовьте ZIP с подписью через PEPK. В окне загрузки подписи скачайте pepk.jar и скопируйте команду, которую RuStore генерирует именно для вашего приложения. В ней уже находится уникальный encryptionkey — его менять нельзя. Нужно заменить только путь к keystore, alias ключа и путь, куда сохранить ZIP. Затем запустите команду в терминале и введите пароль keystore и пароль ключа.

Как опубликовать игру в RuStore: команда PEPK для экспорта подписи AAB

Шаг 3. Создайте отдельный ключ загрузки. Именно им затем должна быть подписана ваша AAB-сборка:

keytool -keystore ваше_хранилище_ключей.keystore -genkey -alias upload -keyalg RSA -validity 36500

Шаг 4. Экспортируйте его публичный сертификат в PEM:

keytool -exportcert -alias upload -keystore ваше_хранилище_ключей.keystore -rfc -file uploadcert.pem

Шаг 5. Загрузите в RuStore два файла: ZIP, созданный PEPK, и uploadcert.pem. Нажмите Отправить подпись. После этого сборку AAB нужно подписывать созданным ключом загрузки, а не ключом подписи приложения.

Если подпись уже существует

Если вы уже выпускали AAB и у вас есть существующий ключ подписи приложения и ключ загрузки, новый комплект создавать не надо. Скачайте PEPK из RuStore, экспортируйте существующую подпись приложения в ZIP, а из ключа загрузки получите PEM-сертификат командой keytool -exportcert. Важный случай миграции: если раньше приложение распространялось как APK, RuStore требует, чтобы в ZIP была именно та подпись, которой подписывался прежний APK — иначе обновление существующей установки не будет считаться продолжением того же приложения.

Полная официальная инструкция находится в разделе «Загрузка подписи приложения». Я бы держал её открытой во время настройки: команда PEPK содержит индивидуальный ключ шифрования и её безопаснее копировать прямо из вашей RuStore Консоли.

Почему мой AAB → APK через онлайн-конвертер не сработал

На этапе подготовки у меня уже была Android-сборка в формате AAB. Мне понадобился APK, чтобы установить игру отдельно, и я попробовал воспользоваться онлайн-конвертером AAB → APK. В результате Android отказался устанавливать полученный файл.

Я не буду утверждать, что причиной конкретно в моём случае была только подпись: без повторного разбора того APK это было бы предположением. Но сам подход через неизвестный онлайн-конвертер оказался неправильным и ненужным.

AAB не устанавливается напрямую на устройство. Если нужен APK для тестирования, есть два нормальных пути:

  • собрать APK непосредственно в Unity, отключив Build App Bundle;
  • использовать официальный bundletool, который умеет сформировать APK-набор из AAB и установить подходящие APK на подключённое устройство.

RuStore в собственной документации тоже рекомендует bundletool для проверки APK, которые будут сформированы из AAB. Документация Android прямо указывает, что App Bundle является форматом публикации и не разворачивается на устройство напрямую.

Проверка игры до отправки в RuStore

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

Train Survival: Night Run — защита локомотива от врагов

Для игр особенно важно пройти хотя бы один полный игровой цикл так, как его увидит новый пользователь. У меня отдельная статья посвящена этой теме: как тестировать игры перед релизом.

Создание приложения в RuStore Консоли

В RuStore Консоли откройте Приложения → Добавить приложение, введите название и откройте созданную карточку. Затем нажмите Загрузить версию. По текущей справке RuStore создать новое приложение может пользователь с ролью владельца компании; загружать версии также могут администратор, релиз-менеджер и разработчик.

  1. Загрузите APK или AAB. Не закрывайте страницу на этапе самой загрузки файла. После этого начинается обработка — её уже можно оставить работать в фоне.
  2. Заполните карточку. Название — до 30 символов, краткое описание — до 80, полное описание — до 4000. Выберите тип «Игра», основную категорию, при необходимости дополнительную, возрастное ограничение и до 5 поисковых тегов.
  3. Укажите контакты разработчика. Для новой версии RuStore просит хотя бы один способ связи: email, сайт, группу ВК или МАКС.
  4. Добавьте иконку и скриншоты по требованиям ниже.
  5. Когда файл успешно обработан и форма заполнена, нажмите Отправить на модерацию. Если хотите вернуться позже — Сохранить как черновик. Учтите: обработанные установочные файлы хранятся 14 дней, если версия так и не отправлена на модерацию.

Официальный порядок: «Как опубликовать приложение».

Иконка и скриншоты: требования RuStore в 2026 году

Для карточки понадобится иконка 512×512 px в PNG или JPG до 3 МБ; RuStore требует, чтобы фон заполнял всю площадь иконки без прозрачных краёв. Мобильные скриншоты обязательны: для каждого типа устройства, для которого вы их загружаете, нужно не менее 3 скриншотов, а одновременно можно добавить до 10. Для телефона файл — до 3 МБ, для планшета — до 5 МБ, формат PNG/JPG, максимальное мобильное разрешение — 2160×3840. Рекомендуемое соотношение сторон — 16:9; изображения других пропорций могут растягиваться или обрезаться.

Скриншоты — это не формальность. Пользователь видит их до установки, поэтому я бы показывал не пять похожих кадров, а разные стороны игры: основной геймплей, опасный момент, развитие и интерфейс.

Train Survival: Night Run — бой с боссом
Train Survival: Night Run — меню прокачки персонажа и локомотива

Загрузка AAB в RuStore

Перед загрузкой AAB проверьте четыре вещи: подпись приложения уже добавлена в RuStore, файл не больше 5 ГБ, имя файла уникально, сборка протестирована. Затем на странице новой версии нажмите Выберите файл, укажите .aab и дождитесь окончания загрузки и обработки.

Если хотите заранее проверить, какие APK получатся из bundle, RuStore рекомендует официальный bundletool. Для универсального APK команда выглядит так: java -jar bundletool-all-1.18.1.jar build-apks --bundle=<путь_к_AAB> --output-format=DIRECTORY --output=<папка> --mode=universal. Это полезно и для локальной проверки вместо сторонних онлайн-конвертеров.

Если это обновление уже опубликованной игры, дополнительно проверьте package name, увеличенный Version Code и то, что AAB подписан тем ключом загрузки, сертификат которого вы добавили в RuStore.

Модерация

Каждое приложение перед публикацией в RuStore проходит обязательную модерацию. Я сознательно не указываю в этой статье «гарантированный срок проверки»: он может зависеть от загрузки площадки, типа приложения и того, потребуются ли исправления. Лучше ориентироваться на статус версии в консоли.

Перед отправкой имеет смысл ещё раз пройти официальные требования RuStore к приложениям. Даже технически рабочая сборка может получить замечание, если карточка, контент или поведение приложения не соответствуют правилам магазина.

Ошибки, которых я бы избегал при следующем релизе

  1. Не использовать случайные онлайн-конвертеры AAB → APK. Для тестового APK проще пересобрать проект в Unity или использовать bundletool.
  2. Не терять keystore и пароли. Ключ нужен не только сегодня, но и для будущих обновлений.
  3. Не менять package name после того, как начал готовить релиз.
  4. Не отправлять игру, не установив релизную сборку на реальный телефон.
  5. Не относиться к скриншотам как к заполнителю формы. Карточка магазина — часть продвижения игры.
  6. Не делать первый релиз последним действием. После публикации начинается работа со страницей игры, отзывами, видео и внешними источниками трафика.

Что делать после публикации

Сам факт появления игры в магазине не гарантирует установки. После выхода Train Survival: Night Run я отдельно сделал страницу игры на HAKSTER, статью о релизе, короткое видео для YouTube Shorts и публикации на других площадках. Дальше уже можно смотреть, какие источники реально приводят пользователей, и улучшать карточку приложения.

Для собственной игры я также сделал отдельную страницу: Train Survival: Night Run, где собраны описание и скриншоты. Более подробный рассказ о самой игре есть в статье «Train Survival: Night Run — Крепость на рельсах».

Скачать Train Survival: Night Run

Результат этого пути уже можно посмотреть в самом RuStore. Игра доступна для Android:

Скачать Train Survival: Night Run в RuStore

Полезные официальные ссылки

Итог

Если коротко, как опубликовать игру в RuStore: подготовить релизную Android-сборку, правильно настроить подпись, загрузить AAB или APK, заполнить карточку и пройти модерацию. Для небольшого Unity-проекта это вполне реально одному разработчику. Самые важные моменты — сохранить keystore, понимать разницу между APK и AAB и обязательно протестировать именно релизную сборку.

Если бы я повторял этот процесс сейчас, я бы с самого начала разделил два сценария: APK для быстрой локальной проверки и AAB для публикации, если для проекта выбран именно bundle-формат. Это избавляет от лишних конвертаций и уменьшает вероятность проблем с подписью.