xworkmate-app/scripts/package-android-apk.sh
2026-03-21 10:08:12 +08:00

31 lines
990 B
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
root_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
dist_dir="$root_dir/dist/android"
key_properties="$root_dir/android/key.properties"
keystore_path="$root_dir/android/upload-keystore.jks"
mkdir -p "$dist_dir"
cleanup() {
rm -f "$key_properties" "$keystore_path"
}
trap cleanup EXIT
if [[ -n "${ANDROID_KEYSTORE_BASE64:-}" && -n "${ANDROID_KEYSTORE_PASSWORD:-}" && -n "${ANDROID_KEY_ALIAS:-}" && -n "${ANDROID_KEY_PASSWORD:-}" ]]; then
printf '%s' "$ANDROID_KEYSTORE_BASE64" | base64 --decode > "$keystore_path"
cat > "$key_properties" <<EOF
storePassword=$ANDROID_KEYSTORE_PASSWORD
keyPassword=$ANDROID_KEY_PASSWORD
keyAlias=$ANDROID_KEY_ALIAS
storeFile=$keystore_path
EOF
else
echo "Android signing secrets are not fully set; using debug signing fallback for non-release builds."
fi
flutter pub get
flutter build apk --release
cp "$root_dir/build/app/outputs/flutter-apk/app-release.apk" "$dist_dir/xworkmate-android-arm64.apk"