64 lines
1.8 KiB
Bash
64 lines
1.8 KiB
Bash
#!/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"
|