185 lines
4.7 KiB
Batchfile
185 lines
4.7 KiB
Batchfile
@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
|