From 3a5281cc58392c77f1a419833ef3a2f244a13195 Mon Sep 17 00:00:00 2001 From: lendry Date: Fri, 26 Jun 2026 18:05:41 +0300 Subject: [PATCH] update --- tauri_app/docker/build-android-apk.sh | 69 +++++++++------------------ 1 file changed, 23 insertions(+), 46 deletions(-) diff --git a/tauri_app/docker/build-android-apk.sh b/tauri_app/docker/build-android-apk.sh index 2caa060..de00c40 100644 --- a/tauri_app/docker/build-android-apk.sh +++ b/tauri_app/docker/build-android-apk.sh @@ -3,74 +3,51 @@ set -euo pipefail cd /workspace -# 1. Настройка переменных окружения -export VITE_API_URL="${VITE_API_URL:-${PUBLIC_API_URL:-http://localhost:3000}}" -export VITE_FRONTEND_URL="${VITE_FRONTEND_URL:-${PUBLIC_FRONTEND_URL:-http://localhost:3002}}" +# Настройки export ANDROID_HOME="${ANDROID_HOME:-/opt/android-sdk}" -export ANDROID_SDK_ROOT="${ANDROID_SDK_ROOT:-${ANDROID_HOME}}" - -# Устанавливаем целевую версию Gradle Plugin. -# Можно переопределить через Docker: -e ANDROID_GRADLE_PLUGIN_VERSION=8.5.0 export ANDROID_GRADLE_PLUGIN_VERSION="${ANDROID_GRADLE_PLUGIN_VERSION:-8.3.2}" # Поиск NDK if [ -z "${ANDROID_NDK_HOME:-}" ]; then NDK_DIR="$(find "${ANDROID_HOME}/ndk" -mindepth 1 -maxdepth 1 -type d 2>/dev/null | sort -V | tail -n 1 || true)" - if [ -n "${NDK_DIR}" ]; then - export ANDROID_NDK_HOME="${NDK_DIR}" - export NDK_HOME="${NDK_DIR}" - fi -fi - -echo "==> Android SDK: ${ANDROID_HOME}" -echo "==> Android NDK: ${ANDROID_NDK_HOME:-не найден}" -echo "==> Целевая версия Android Gradle Plugin: ${ANDROID_GRADLE_PLUGIN_VERSION}" - -if [ -z "${ANDROID_NDK_HOME:-}" ] || [ ! -d "${ANDROID_NDK_HOME}" ]; then - echo "Ошибка: Android NDK не найден." >&2 - exit 1 + [ -n "${NDK_DIR}" ] && export ANDROID_NDK_HOME="${NDK_DIR}" fi mkdir -p /out -# 2. Сборка веб-части -echo "==> Проверка web-сборки tauri_app" +echo "==> Сборка web-части..." npm --workspace @lendry/tauri-app run build cd /workspace/tauri_app -# 3. Инициализация проекта -if [ -d "src-tauri/gen/android" ]; then - echo "==> Очистка предыдущего Android проекта Tauri" - rm -rf src-tauri/gen/android -fi +# Очистка и инициализация +[ -d "src-tauri/gen/android" ] && rm -rf src-tauri/gen/android +echo "==> Инициализация..." +npm run android:init -- --ci -echo "==> Инициализация Android проекта Tauri" -npm run android:init -- --ci || npm run android:init +# --- ДИАГНОСТИКА: Посмотрим, что внутри файлов --- +echo "==> Содержимое файлов gradle перед патчингом:" +find src-tauri/gen/android -name "libs.versions.toml" -o -name "build.gradle" -o -name "build.gradle.kts" | xargs grep -H "8.11.0" || echo "Версия 8.11.0 не найдена через grep!" -# 4. Принудительный патчинг всех файлов конфигурации Gradle -# Мы заменяем любые упоминания версии плагина на нашу стабильную версию -echo "==> Патчинг конфигурации Gradle на версию ${ANDROID_GRADLE_PLUGIN_VERSION}" +# --- ПАТЧИНГ: Более агрессивный метод --- +echo "==> Принудительный патчинг..." -find src-tauri/gen/android -type f \( -name "*.gradle" -o -name "*.gradle.kts" -o -name "*.toml" \) -print0 | xargs -0 sed -i -E \ - -e "s/(com\.android\.tools\.build:gradle:)[0-9]+\.[0-9]+\.[0-9]+/\1${ANDROID_GRADLE_PLUGIN_VERSION}/g" \ - -e "s/(id\(?['\"]com\.android\.application['\"]? version ['\"])[0-9]+\.[0-9]+\.[0-9]+/\1${ANDROID_GRADLE_PLUGIN_VERSION}/g" \ - -e "s/(agp[[:space:]]*=[[:space:]]*['\"])[0-9]+\.[0-9]+\.[0-9]+/\1${ANDROID_GRADLE_PLUGIN_VERSION}/g" +# Заменяем вообще все вхождения 8.11.0 на 8.3.2 во всех файлах gradle/toml +find src-tauri/gen/android -type f \( -name "*.gradle" -o -name "*.gradle.kts" -o -name "*.toml" \) -print0 | \ +xargs -0 sed -i "s/8.11.0/${ANDROID_GRADLE_PLUGIN_VERSION}/g" -# 5. Сборка APK -echo "==> Сборка Android APK" +# Проверка результата +echo "==> Содержимое файлов после патчинга:" +find src-tauri/gen/android -name "libs.versions.toml" -o -name "build.gradle" -o -name "build.gradle.kts" | xargs grep -H "${ANDROID_GRADLE_PLUGIN_VERSION}" || echo "Патчинг не сработал!" + +# Сборка +echo "==> Сборка APK..." npm run tauri -- android build --apk -# 6. Копирование результата APK_PATH="$(find /workspace/tauri_app/src-tauri/gen/android -type f -name '*.apk' | sort | tail -n 1 || true)" +[ -f "${APK_PATH}" ] && cp "${APK_PATH}" /out/lendry-id.apk || exit 1 -if [ -z "${APK_PATH}" ] || [ ! -f "${APK_PATH}" ]; then - echo "Ошибка: APK не найден после сборки" >&2 - exit 1 -fi - -cp "${APK_PATH}" /out/lendry-id.apk -chmod 0644 /out/lendry-id.apk +echo "==> Готово." echo "==> APK успешно собран: /out/lendry-id.apk" ls -lh /out/lendry-id.apk \ No newline at end of file