Документация Мобильное приложение
Сборка приложения для Android
Установка и настройка · обновлено 9 ноября 2026 г.
Команды выполняются в папке распакованного комплекта — там лежат builder/, scripts/ и brands/. Перед сборкой подготовьте бренд.
Порядок: компьютер для сборки → образ сборки → ключ подписи → сборка. Образ portal-mobile-builder ниоткуда не скачивается: его собирают из комплекта, и ключ создаётся уже в нём.
1. Компьютер для сборки
Любой компьютер или сервер с Docker. На Ubuntu: sudo apt install docker.io docker-buildx
Пакет docker-buildx обязателен: без него docker build не соберёт образ (ошибка про --mount). Образ занимает около 3 ГБ — оставьте на диске запас.
Команды ниже — от root или через sudo.
2. Образ сборки
Нужен образ portal-mobile-builder:<версия> той же версии, что комплект (и портал). Он собирается из комплекта один раз для каждой версии; нужен интернет. Параметром ANDROID_SDK_LICENSE_ACCEPTED=yes вы принимаете условия Android SDK — developer.android.com/studio/terms.
docker build -f builder/Dockerfile --build-arg ANDROID_SDK_LICENSE_ACCEPTED=yes -t portal-mobile-builder:<версия> .
Сборка образа идёт 10–20 минут: скачиваются JDK, Android SDK, пакеты npm и Gradle, внутри один раз собирается демо-приложение. Проверка: docker images portal-mobile-builder показывает образ с вашей версией.
Если сборка падает на скачивании образов node или eclipse-temurin (Docker Hub бывает недоступен), добавьте зеркало в /etc/docker/daemon.json: { "registry-mirrors": ["https://mirror.gcr.io"] }, перезапустите Docker (systemctl restart docker) и повторите сборку. Кроме Docker Hub сборке образа нужны dl.google.com, registry.npmjs.org и репозитории Google и Maven.
3. Ключ подписи
Каждое обновление приложения подписывается тем же ключом, что и первая версия. Потеряли ключ или пароль — обновить приложение у дилеров невозможно, придётся публиковать новое и просить всех переустановить.
Ключ создаётся один раз, в образе сборки: docker run --rm -it -v "$PWD":/kit -w /kit portal-mobile-builder:<версия> ./scripts/new-keystore.sh keys/upload.jks
Утилита спросит пароль хранилища, имя и организацию, пароль ключа (можно тот же). Псевдоним ключа — upload.
- Сохраните
keys/upload.jksи пароли в двух надёжных местах (например, в хранилище паролей компании и на отдельном носителе). - Этим ключом подписываются и APK для портала, и APK/AAB для RuStore, и AAB для Google Play (там он — «ключ загрузки», а приложение для пользователей Google подписывает своим ключом).
- Для следующих версий скопируйте
keys/upload.jksв папку нового комплекта — новый ключ не создавайте.
4. Сборка
Интернет для сборки не нужен.
- Задайте пароли ключа:
export ANDROID_KEYSTORE_PASSWORD='…' ANDROID_KEY_PASSWORD='…' - Соберите (вместо
brands/acme— ваша папка бренда):docker run --rm -v "$PWD":/kit -w /kit -e ANDROID_KEYSTORE_FILE=/kit/keys/upload.jks -e ANDROID_KEY_ALIAS=upload -e ANDROID_KEYSTORE_PASSWORD -e ANDROID_KEY_PASSWORD portal-mobile-builder:<версия> ./scripts/build-android.sh brands/acme
Если запускаете через sudo, пишите sudo -E docker run …: без -E пароли из export не попадут в контейнер.
Результат — в папке out/:
ru.acme.dealer-<версия>.apk— для портала и RuStore;ru.acme.dealer-<версия>.aab— для Google Play.
Если нужно пересобрать ту же версию (сменили иконку или цвет), добавьте к команде сборки --build 1, затем --build 2 и т. д.: магазины принимают только сборку с большим номером.
Дальше — Публикация приложения.