#!/bin/bash # Build SCAR Chat Android APK using Docker # This avoids needing to install the full Android SDK on your system set -e SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_DIR="$SCRIPT_DIR" echo "==================================" echo "Building SCAR Chat APK with Docker" echo "==================================" echo "" # Check if Docker is available if ! command -v docker &> /dev/null; then echo "Error: Docker is not installed" echo "Install Docker from: https://www.docker.com/products/docker-desktop" echo "" echo "Or build manually:" echo " 1. Install Android Studio" echo " 2. Run: ./setup-android-sdk.sh" echo " 3. Run: ./gradlew build" exit 1 fi echo "✓ Docker found" echo "" # Pull Android SDK image echo "Downloading Android build environment..." docker pull reactnativecommunity/react-native-android:latest 2>/dev/null || \ docker pull thebigbluebox/android-ndk:latest 2>/dev/null || \ docker pull maven:3.9-eclipse-temurin-21 2>/dev/null || { echo "Error: Could not pull Android Docker image" echo "Ensure you have internet connection and Docker running" exit 1 } echo "✓ Build environment ready" echo "" echo "Building APK..." # Build using Docker docker run --rm \ -v "$PROJECT_DIR:/workspace" \ -w /workspace \ -e GRADLE_USER_HOME=/workspace/.gradle \ maven:3.9-eclipse-temurin-21 \ bash -c " apt-get update && apt-get install -y android-sdk android-tools 2>/dev/null || true ./gradlew build --no-daemon " || { echo "Docker build attempted (full Android SDK image not available)" exit 1 } echo "" echo "✓ Build complete!" echo "" echo "APK files generated at:" echo " Debug: $PROJECT_DIR/app/build/outputs/apk/debug/app-debug.apk" echo " Release: $PROJECT_DIR/app/build/outputs/apk/release/app-release.apk"