43 lines
1.5 KiB
Bash
43 lines
1.5 KiB
Bash
#!/usr/bin/env bash
|
|
# iBoard Android APK 打包
|
|
# 在 WSL 内执行: bash scripts/wsl/build-apk.sh [debug|release]
|
|
# 默认 debug, release 需要先配签名 (见末尾)
|
|
set -euo pipefail
|
|
|
|
WIN_PROJECT='/mnt/d/workbench/iboard'
|
|
cd "$WIN_PROJECT"
|
|
|
|
VARIANT="${1:-debug}"
|
|
echo "构建变体: $VARIANT"
|
|
|
|
# 环境变量 (setup.sh 已写过, 防御性再写一次)
|
|
export ANDROID_HOME="${ANDROID_HOME:-$HOME/android-sdk}"
|
|
export ANDROID_NDK_HOME="${ANDROID_NDK_HOME:-$ANDROID_HOME/ndk/26.1.10909125}"
|
|
export PATH="$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:$HOME/.cargo/bin:$PATH"
|
|
|
|
# 1. 先确保前端 dist/ 最新
|
|
echo "=== 1. 构建前端 ==="
|
|
npm run build
|
|
|
|
# 2. 进 src-tauri 跑 cargo tauri android build
|
|
echo "=== 2. 构建 APK ==="
|
|
cd src-tauri
|
|
|
|
if [ "$VARIANT" = "release" ]; then
|
|
# release 需要签名, 首次请先生成 keystore:
|
|
# keytool -genkey -v -keystore ~/iboard-release.keystore -alias iboard \
|
|
# -keyalg RSA -keysize 2048 -validity 10000
|
|
# 然后在 ~/.gradle/gradle.properties 配:
|
|
# IBOARD_UPLOAD_STORE_FILE=/path/to/iboard-release.keystore
|
|
# IBOARD_UPLOAD_KEY_ALIAS=iboard
|
|
# IBOARD_UPLOAD_STORE_PASSWORD=...
|
|
# IBOARD_UPLOAD_KEY_PASSWORD=...
|
|
npx tauri android build -- --release
|
|
else
|
|
npx tauri android build -- --debug
|
|
fi
|
|
|
|
echo
|
|
echo "=== 产物位置 ==="
|
|
APK_DIR="$WIN_PROJECT/src-tauri/target/$( [ "$VARIANT" = "release" ] && echo release || echo debug )/bundle/android/app/build/outputs/apk/$VARIANT"
|
|
ls -lh "$APK_DIR"/*.apk 2>/dev/null || echo "(未找到 APK, 请检查上面日志)" |