@echo off setlocal enabledelayedexpansion echo ======================================== echo TSS Party Android APK Builder echo ======================================== echo. :: Check if gradlew exists if not exist "gradlew.bat" ( echo [ERROR] gradlew.bat not found! echo Please run this script from the service-party-android directory. pause exit /b 1 ) :: Check and create local.properties if needed if not exist "local.properties" ( echo [INFO] local.properties not found, attempting to detect Android SDK... :: Try common SDK locations set SDK_FOUND=0 :: Check ANDROID_HOME environment variable first if defined ANDROID_HOME ( if exist "!ANDROID_HOME!\platform-tools" ( echo sdk.dir=!ANDROID_HOME:\=/!> local.properties echo [INFO] Created local.properties with ANDROID_HOME: !ANDROID_HOME! set SDK_FOUND=1 ) ) :: Try common Windows locations if !SDK_FOUND!==0 ( for %%P in ( "%LOCALAPPDATA%\Android\Sdk" "%USERPROFILE%\AppData\Local\Android\Sdk" "C:\Android\Sdk" "C:\Android" "C:\Users\%USERNAME%\Android\Sdk" ) do ( if exist "%%~P\platform-tools" ( set "SDK_PATH=%%~P" set "SDK_PATH=!SDK_PATH:\=/!" echo sdk.dir=!SDK_PATH!> local.properties echo [INFO] Created local.properties with SDK path: %%~P set SDK_FOUND=1 goto :sdk_found ) ) ) :sdk_found if !SDK_FOUND!==0 ( echo [ERROR] Android SDK not found! echo. echo Please do one of the following: echo 1. Set ANDROID_HOME environment variable to your SDK path echo 2. Create local.properties file with: sdk.dir=C:/path/to/android/sdk echo 3. Install Android Studio which includes the SDK echo. echo Common SDK locations: echo - %LOCALAPPDATA%\Android\Sdk echo - C:\Android\Sdk echo. pause exit /b 1 ) ) echo [INFO] Using SDK from local.properties type local.properties echo. :: Parse command line arguments set BUILD_TYPE=all if "%1"=="debug" set BUILD_TYPE=debug if "%1"=="release" set BUILD_TYPE=release if "%1"=="clean" set BUILD_TYPE=clean if "%1"=="help" goto :show_help :: Show build type echo Build type: %BUILD_TYPE% echo. :: Clean build if "%BUILD_TYPE%"=="clean" ( echo [1/1] Cleaning build files... call gradlew.bat clean --no-daemon if !errorlevel! neq 0 ( echo [ERROR] Clean failed! pause exit /b 1 ) echo. echo [SUCCESS] Clean completed! goto :end ) :: Build Debug APK if "%BUILD_TYPE%"=="debug" goto :build_debug if "%BUILD_TYPE%"=="all" goto :build_debug goto :check_release :build_debug echo [1/2] Building Debug APK... call gradlew.bat assembleDebug --no-daemon if !errorlevel! neq 0 ( echo [ERROR] Debug build failed! pause exit /b 1 ) echo [SUCCESS] Debug APK built successfully! echo Location: app\build\outputs\apk\debug\app-debug.apk echo. :check_release if "%BUILD_TYPE%"=="debug" goto :show_results :: Build Release APK :build_release echo [2/2] Building Release APK... call gradlew.bat assembleRelease --no-daemon if !errorlevel! neq 0 ( echo [ERROR] Release build failed! pause exit /b 1 ) echo [SUCCESS] Release APK built successfully! echo Location: app\build\outputs\apk\release\app-release.apk echo. :show_results echo ======================================== echo Build Results echo ======================================== echo. :: Check and show Debug APK if exist "app\build\outputs\apk\debug\app-debug.apk" ( for %%F in ("app\build\outputs\apk\debug\app-debug.apk") do ( echo [DEBUG APK] echo Path: %%~fF echo Size: %%~zF bytes ) echo. ) :: Check and show Release APK if exist "app\build\outputs\apk\release\app-release.apk" ( for %%F in ("app\build\outputs\apk\release\app-release.apk") do ( echo [RELEASE APK] echo Path: %%~fF echo Size: %%~zF bytes ) echo. ) echo ======================================== echo Build completed successfully! echo ======================================== goto :end :show_help echo. echo Usage: build-apk.bat [option] echo. echo Options: echo debug - Build debug APK only echo release - Build release APK only echo all - Build both debug and release APKs (default) echo clean - Clean build files echo help - Show this help message echo. echo Examples: echo build-apk.bat - Build both APKs echo build-apk.bat debug - Build debug APK only echo build-apk.bat release - Build release APK only echo build-apk.bat clean - Clean project echo. :end echo. pause