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