Files
ts-mobile-go/build-release.bat
T

56 lines
1.8 KiB
Batchfile
Raw Permalink Normal View History

2026-07-20 19:01:03 +08:00
@echo off
setlocal EnableExtensions EnableDelayedExpansion
set "SCRIPT_DIR=%~dp0"
set "ANDROID_DIR=%SCRIPT_DIR%android"
set "APK_OUTPUT=%ANDROID_DIR%\app\build\outputs\apk\release\app-release.apk"
set "BUNDLE_OUTPUT=%ANDROID_DIR%\app\build\outputs\bundle\release\app-release.aab"
cd /d "%SCRIPT_DIR%"
echo === TeamSpeak Mobile Release Build ===
echo.
REM 1. Build the Go bridge and AAR with the required Android linker flags.
echo [1/3] Building Go bridge and Android AAR...
call "%SCRIPT_DIR%build.bat"
if errorlevel 1 (
echo ERROR: Go bridge/AAR build failed.
exit /b 1
)
REM 2. Build the signed release APK and Play Store bundle.
echo.
echo [2/3] Building release APK and AAB...
if not exist "%ANDROID_DIR%\gradlew.bat" (
echo ERROR: gradlew.bat not found in "%ANDROID_DIR%".
exit /b 1
)
REM Stop old Gradle daemons before building. Do not run clean here: Android Studio,
REM antivirus, or a previous Gradle daemon can temporarily lock app\build files.
call "%ANDROID_DIR%\gradlew.bat" -p "%ANDROID_DIR%" --stop >nul 2>&1
call "%ANDROID_DIR%\gradlew.bat" -p "%ANDROID_DIR%" assembleRelease bundleRelease
if errorlevel 1 (
echo ERROR: Release build failed.
echo If app\build is locked, close Android Studio/Explorer windows using it,
echo then run: android\gradlew.bat -p android --stop
echo Check android/app/build.gradle.kts signingConfigs and Gradle properties.
exit /b 1
)
REM 3. Report generated artifacts.
echo.
echo [3/3] Release build complete.
if exist "%APK_OUTPUT%" echo APK: %APK_OUTPUT%
if exist "%BUNDLE_OUTPUT%" echo AAB: %BUNDLE_OUTPUT%
if not exist "%APK_OUTPUT%" if not exist "%BUNDLE_OUTPUT%" (
echo ERROR: No release artifact was generated.
exit /b 1
)
echo.
echo Note: Release signing must be configured in android/app/build.gradle.kts.
echo Keep the keystore and passwords outside the repository.
exit /b 0