diff --git a/tauri_app/docker/build-android-apk.sh b/tauri_app/docker/build-android-apk.sh index de00c40..ebb158d 100644 --- a/tauri_app/docker/build-android-apk.sh +++ b/tauri_app/docker/build-android-apk.sh @@ -3,51 +3,55 @@ set -euo pipefail cd /workspace -# Настройки +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_GRADLE_PLUGIN_VERSION="${ANDROID_GRADLE_PLUGIN_VERSION:-8.3.2}" +export ANDROID_SDK_ROOT="${ANDROID_SDK_ROOT:-${ANDROID_HOME}}" -# Поиск 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)" - [ -n "${NDK_DIR}" ] && export ANDROID_NDK_HOME="${NDK_DIR}" + 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:-не найден}" + +if [ -z "${ANDROID_NDK_HOME:-}" ] || [ ! -d "${ANDROID_NDK_HOME}" ]; then + echo "Android NDK не найден в ${ANDROID_HOME}/ndk. Используйте Android SDK image с предустановленным NDK или примонтируйте SDK с NDK." >&2 + exit 1 fi mkdir -p /out -echo "==> Сборка web-части..." +echo "==> Проверка web-сборки tauri_app" npm --workspace @lendry/tauri-app run build cd /workspace/tauri_app -# Очистка и инициализация -[ -d "src-tauri/gen/android" ] && rm -rf src-tauri/gen/android -echo "==> Инициализация..." -npm run android:init -- --ci +if [ -d "src-tauri/gen/android" ]; then + echo "==> Очистка предыдущего Android проекта Tauri" + rm -rf src-tauri/gen/android +fi -# --- ДИАГНОСТИКА: Посмотрим, что внутри файлов --- -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!" +echo "==> Инициализация Android проекта Tauri" +npm run android:init -- --ci || npm run android:init -# --- ПАТЧИНГ: Более агрессивный метод --- -echo "==> Принудительный патчинг..." - -# Заменяем вообще все вхождения 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" - -# Проверка результата -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..." +echo "==> Сборка Android APK (AGP из шаблона Tauri, без принудительного даунгрейда)" npm run tauri -- android build --apk 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 -echo "==> Готово." +if [ -z "${APK_PATH}" ] || [ ! -f "${APK_PATH}" ]; then + echo "APK не найден после сборки" >&2 + find /workspace/tauri_app/src-tauri/gen/android -maxdepth 8 -type f | sort >&2 || true + exit 1 +fi -echo "==> APK успешно собран: /out/lendry-id.apk" -ls -lh /out/lendry-id.apk \ No newline at end of file +cp "${APK_PATH}" /out/lendry-id.apk +chmod 0644 /out/lendry-id.apk + +echo "==> APK готов: /out/lendry-id.apk" +ls -lh /out/lendry-id.apk