Files
boss/scripts/build-release-apk.sh
2026-03-26 23:16:56 +08:00

30 lines
1.0 KiB
Bash
Executable File

#!/bin/zsh
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "$0")/.." && pwd)"
ANDROID_DIR="$ROOT_DIR/android"
RELEASE_APK="$ANDROID_DIR/app/build/outputs/apk/release/app-release.apk"
BUILD_GRADLE="$ROOT_DIR/android/app/build.gradle"
VERSION_NAME="$(sed -n 's/.*versionName \"\([^\"]*\)\"/\1/p' "$BUILD_GRADLE" | head -n 1)"
VERSIONED_RELEASE_APK="$ANDROID_DIR/app/build/outputs/apk/release/boss-android-v${VERSION_NAME}-release.apk"
zsh "$ROOT_DIR/scripts/prepare-android-signing.sh"
cd "$ANDROID_DIR"
./gradlew assembleRelease
cd "$ROOT_DIR"
cp "$RELEASE_APK" "$VERSIONED_RELEASE_APK"
zsh "$ROOT_DIR/scripts/publish-apk-to-public.sh" "$RELEASE_APK"
APKSIGNER="$(find "${ANDROID_HOME:-$HOME/Library/Android/sdk}/build-tools" -name apksigner -type f 2>/dev/null | sort | tail -n 1)"
if [[ -n "${APKSIGNER:-}" && -f "$APKSIGNER" ]]; then
"$APKSIGNER" verify --print-certs "$RELEASE_APK"
else
echo "apksigner not found, skipped signature verification output" >&2
fi
echo "Signed release APK ready: $RELEASE_APK"
echo "Versioned release APK ready: $VERSIONED_RELEASE_APK"