Files
rdp-proxy/scripts/android/README.md
T
2026-05-12 21:02:29 +03:00

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-tools
  • platform-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-rdp-vpn-latest-release.apk
  • dist/releases/<version>/rap-android-rdp-vpn-<version>-release.apk
  • dist/downloads/rap-android-rdp-vpn-build.json
  • web-admin/deploy/html/downloads/rap-android-rdp-vpn-latest-release.apk
  • web-admin/deploy/html/downloads/releases/<version>/rap-android-rdp-vpn-<version>-release.apk
  • web-admin/deploy/html/downloads/rap-android-rdp-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-rdp-vpn-latest-release.apk
  • Поэтому скрипт публикует APK в web-admin/deploy/html/downloads, чтобы новый артефакт был сразу доступен для скачивания пользователем после сборки и для автообновления узлов.