#!/usr/bin/env bash # gtauri build: Tauri v2 scroll-jank testbed (sltest port). # # ./scripts/build.sh # aarch64 (phone) # ./scripts/build.sh x86_64 # emulator # ADB_SERIAL= ./scripts/build.sh # install target # # Output: /tmp/gtauri/-release.apk (signed with the debug keystore). set -euo pipefail cd "$(dirname "$0")/.." ABI="${1:-aarch64}" case "$ABI" in aarch64|x86_64|armv7|i686) ;; *) echo "unknown ABI: $ABI" >&2; exit 2 ;; esac export ANDROID_HOME="${ANDROID_HOME:-$HOME/android-sdk}" export ANDROID_SDK_ROOT="$ANDROID_HOME" cargo tauri android build --target "$ABI" SRC=gen/android/app/build/outputs/apk/universal/release/app-universal-release-unsigned.apk [ -f "$SRC" ] || { echo "APK not found at $SRC" >&2; exit 1; } OUT=/tmp/gtauri mkdir -p "$OUT" cp "$SRC" "$OUT/gtauri-$ABI-unsigned.apk" KEYSTORE="${KEYSTORE:-$HOME/.android/debug.keystore}" APKSIGNER="$ANDROID_HOME/build-tools/35.0.0/apksigner" "$APKSIGNER" sign --ks "$KEYSTORE" --ks-key-alias androiddebugkey \ --ks-pass pass:android --key-pass pass:android \ --out "$OUT/gtauri-$ABI-release.apk" "$OUT/gtauri-$ABI-unsigned.apk" echo "APK: $OUT/gtauri-$ABI-release.apk ($(du -h "$OUT/gtauri-$ABI-release.apk" | cut -f1))" if [ -n "${ADB_SERIAL:-}" ]; then adb -s "$ADB_SERIAL" install -r "$OUT/gtauri-$ABI-release.apk" adb -s "$ADB_SERIAL" shell am force-stop wow.gmp.gtauri adb -s "$ADB_SERIAL" shell am start -n wow.gmp.gtauri/.MainActivity fi