scar-chat/android_client/build-docker.sh

64 lines
1.8 KiB
Bash
Raw Permalink Normal View History

#!/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"