6.2 KiB
Android сборка и публикация APK (локально)
Эти скрипты позволяют делать локальную сборку Android-клиента, сразу публиковать готовый APK в место, из которого веб-панель его скачивает, и при необходимости быстро проверять состояние окружения.
Подготовка окружения
Сначала проверьте зависимости и переменные окружения:
pwsh -ExecutionPolicy Bypass -File scripts\android\prepare-android-build-environment.ps1 -SetEnvironment
Скрипт проверит:
java(JDK 17+)gradle- Android SDK (по умолчанию
C:\Android\Sdk) sdkmanagerизcmdline-toolsplatform-tools,platforms;android-<compileSdk>,build-tools;35.0.1
По необходимости можно автосоздать отсутствующие SDK-компоненты:
pwsh -ExecutionPolicy Bypass -File scripts\android\prepare-android-build-environment.ps1 -InstallMissing -SetEnvironment
Быстрый запуск после апдейта
После любого обновления версии соблюдаем правило: сборка → публикация → проверка manifest.
Любой новый номер версии должен сразу появляться в скачиваемых артефактах.
После обновления клиента запусти сборку и публикацию одной командой:
pwsh -ExecutionPolicy Bypass -File scripts\android\rebuild-and-publish-android-apk.ps1
По умолчанию команда делает публикацию в локальные папки и в test-docker (vpn.cin.su):
это нужно для корректного обновления узлов и пользователей.
Для релиза -PublishToTestDockerDownloads включен по умолчанию; отключать публикацию
внешне можно только флагами -PublishToTestDockerDownloads:$false или -NoRemotePublish.
pwsh -ExecutionPolicy Bypass -File scripts\android\rebuild-and-publish-android-apk.ps1 `
-PublishToTestDockerDownloads `
-TestDockerSshAlias test-docker `
-TestDockerDownloadPath "/tmp/rap-web-admin/html/downloads"
Если нужно сделать полноценный release-пайплайн в один шаг (подготовка окружения + сборка + публикация + верификация доступного манифеста), можно использовать:
pwsh -ExecutionPolicy Bypass -File scripts\android\release-android-apk.ps1 `
-InstallMissing `
-BuildType release `
-PublishToTestDockerDownloads:$true `
-TestDockerSshAlias test-docker `
-TestDockerDownloadPath "/tmp/rap-web-admin/html/downloads" `
-PortalVerifyBaseUrl "http://192.168.200.61:18080"
Для «одной команды без параметров» добавлен быстрый запускатор:
pwsh -ExecutionPolicy Bypass -File scripts\android\fast-release-android-apk.ps1
Также можно запускать двойным кликом из Windows:
scripts\android\fast-release-android-apk.cmd
Через .cmd можно добавлять параметры FastScript, например:
scripts\android\fast-release-android-apk.cmd -NoRemotePublish -NoPrepare
Для production-сборок не отключай -NoRemotePublish и -NoPrepare.
Эти флаги только для отладочной локальной проверки и не применяются к выпуску.
Полный bootstrap локальной сборочной машины
Если на новом ПК/ноутбуке нужно собрать проект локально, сначала прогрейте окружение:
pwsh -ExecutionPolicy Bypass -File scripts\prepare-local-build-workstation.ps1 -SetEnvironment
Если нужно сразу пытаться устанавливать недостающее:
pwsh -ExecutionPolicy Bypass -File scripts\prepare-local-build-workstation.ps1 -InstallMissing -SetEnvironment
После этого можно делать сборку:
pwsh -ExecutionPolicy Bypass -File scripts\android\fast-release-android-apk.ps1
По умолчанию результат будет (для release-сборки из CI/рабочего процесса это самые нужные имена):
dist/downloads/rap-android-vpn-latest-release.apkdist/releases/<version>/rap-android-vpn-<version>-release.apkdist/downloads/rap-android-vpn-build.jsonweb-admin/deploy/html/downloads/rap-android-vpn-latest-release.apkweb-admin/deploy/html/downloads/releases/<version>/rap-android-vpn-<version>-release.apkweb-admin/deploy/html/downloads/rap-android-vpn-build.json
Эти файлы и папки игнорируются git для dist, поэтому web-admin артефакты
должны публиковаться отдельным шагом инфраструктуры.
Принудительная сборка Release
pwsh -ExecutionPolicy Bypass -File scripts\android\build-android-apk.ps1 -BuildType release
Где указывать SDK
Если SDK лежит не в C:\Android\Sdk, укажи явно:
pwsh -ExecutionPolicy Bypass -File scripts\android\build-android-apk.ps1 -AndroidHome "D:\SDK\Android"
Что важно для работы с админ-панелью
- Веб-панель уже ожидает файл:
downloads/rap-android-vpn-latest-release.apk - Поэтому скрипт публикует APK в
web-admin/deploy/html/downloads, чтобы новый артефакт был сразу доступен для скачивания пользователем после сборки и для автообновления узлов.