Files
rdp-proxy/scripts/android/README.md
T

139 lines
6.2 KiB
Markdown

# Android сборка и публикация APK (локально)
Эти скрипты позволяют делать локальную сборку Android-клиента, сразу публиковать
готовый APK в место, из которого веб-панель его скачивает, и при необходимости
быстро проверять состояние окружения.
## Подготовка окружения
Сначала проверьте зависимости и переменные окружения:
```powershell
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-компоненты:
```powershell
pwsh -ExecutionPolicy Bypass -File scripts\android\prepare-android-build-environment.ps1 -InstallMissing -SetEnvironment
```
## Быстрый запуск после апдейта
После любого обновления версии соблюдаем правило: **сборка → публикация → проверка manifest**.
Любой новый номер версии должен сразу появляться в скачиваемых артефактах.
После обновления клиента запусти сборку и публикацию одной командой:
```powershell
pwsh -ExecutionPolicy Bypass -File scripts\android\rebuild-and-publish-android-apk.ps1
```
По умолчанию команда делает публикацию в локальные папки и в test-docker (vpn.cin.su):
это нужно для корректного обновления узлов и пользователей.
Для релиза `-PublishToTestDockerDownloads` включен по умолчанию; отключать публикацию
внешне можно только флагами `-PublishToTestDockerDownloads:$false` или `-NoRemotePublish`.
```powershell
pwsh -ExecutionPolicy Bypass -File scripts\android\rebuild-and-publish-android-apk.ps1 `
-PublishToTestDockerDownloads `
-TestDockerSshAlias test-docker `
-TestDockerDownloadPath "/tmp/rap-web-admin/html/downloads"
```
Если нужно сделать полноценный release-пайплайн в один шаг (подготовка окружения +
сборка + публикация + верификация доступного манифеста), можно использовать:
```powershell
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"
```
Для «одной команды без параметров» добавлен быстрый запускатор:
```powershell
pwsh -ExecutionPolicy Bypass -File scripts\android\fast-release-android-apk.ps1
```
Также можно запускать двойным кликом из Windows:
```text
scripts\android\fast-release-android-apk.cmd
```
Через `.cmd` можно добавлять параметры FastScript, например:
```text
scripts\android\fast-release-android-apk.cmd -NoRemotePublish -NoPrepare
```
Для production-сборок не отключай `-NoRemotePublish` и `-NoPrepare`.
Эти флаги только для отладочной локальной проверки и не применяются к выпуску.
## Полный bootstrap локальной сборочной машины
Если на новом ПК/ноутбуке нужно собрать проект локально, сначала прогрейте окружение:
```powershell
pwsh -ExecutionPolicy Bypass -File scripts\prepare-local-build-workstation.ps1 -SetEnvironment
```
Если нужно сразу пытаться устанавливать недостающее:
```powershell
pwsh -ExecutionPolicy Bypass -File scripts\prepare-local-build-workstation.ps1 -InstallMissing -SetEnvironment
```
После этого можно делать сборку:
```powershell
pwsh -ExecutionPolicy Bypass -File scripts\android\fast-release-android-apk.ps1
```
По умолчанию результат будет (для release-сборки из CI/рабочего процесса это самые нужные имена):
- `dist/downloads/rap-android-vpn-latest-release.apk`
- `dist/releases/<version>/rap-android-vpn-<version>-release.apk`
- `dist/downloads/rap-android-vpn-build.json`
- `web-admin/deploy/html/downloads/rap-android-vpn-latest-release.apk`
- `web-admin/deploy/html/downloads/releases/<version>/rap-android-vpn-<version>-release.apk`
- `web-admin/deploy/html/downloads/rap-android-vpn-build.json`
Эти файлы и папки игнорируются git для `dist`, поэтому `web-admin` артефакты
должны публиковаться отдельным шагом инфраструктуры.
## Принудительная сборка Release
```powershell
pwsh -ExecutionPolicy Bypass -File scripts\android\build-android-apk.ps1 -BuildType release
```
## Где указывать SDK
Если SDK лежит не в `C:\Android\Sdk`, укажи явно:
```powershell
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`, чтобы новый
артефакт был сразу доступен для скачивания пользователем после сборки и для
автообновления узлов.