修改架构,移动端优先。

save
This commit is contained in:
cheney
2026-08-03 18:05:50 +08:00
committed by Cheney
parent 1c07b417ce
commit 08b3655a38
71 changed files with 2524 additions and 290 deletions
+43
View File
@@ -0,0 +1,43 @@
#!/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, 请检查上面日志)"
+12
View File
@@ -0,0 +1,12 @@
#!/usr/bin/env bash
# 把刚打好的 APK 装到已连接的 adb 设备/模拟器
# 用法: bash scripts/wsl/install-apk.sh [debug|release]
set -euo pipefail
VARIANT="${1:-debug}"
WIN_PROJECT='/mnt/d/workbench/iboard'
export PATH="$HOME/android-sdk/platform-tools:$PATH"
APK_DIR="$WIN_PROJECT/src-tauri/target/$( [ "$VARIANT" = "release" ] && echo release || echo debug )/bundle/android/app/build/outputs/apk/$VARIANT"
APK=$(ls -1 "$APK_DIR"/*.apk | head -1)
echo "安装: $APK"
adb install -r "$APK"
+68
View File
@@ -0,0 +1,68 @@
#!/usr/bin/env bash
# iBoard Android 端 WSL 首次搭建脚本
# 在 WSL (Ubuntu 22.04+) 内执行: bash scripts/wsl/setup.sh
# 完成后即可运行: bash scripts/wsl/build-apk.sh
set -euo pipefail
# Windows 项目路径 (按需调整)
WIN_PROJECT='/mnt/d/workbench/iboard'
cd "$WIN_PROJECT"
echo "=== 1. 系统依赖 ==="
sudo apt update
sudo apt install -y \
build-essential curl wget file libssl-dev pkg-config \
unzip zip git \
openjdk-17-jdk-headless \
clang libgtk-3-dev libwebkit2gtk-4.1-dev libayatana-appindicator3-dev librsvg2-dev \
libsoup-3.0-dev libjavascriptcoregtk-4.1-dev
echo "=== 2. Rust ==="
if ! command -v cargo >/dev/null 2>&1; then
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
source "$HOME/.cargo/env"
fi
rustc --version
cargo --version
echo "=== 3. Android SDK + NDK ==="
export ANDROID_HOME="$HOME/Android/Sdk"
export ANDROID_NDK_HOME="$ANDROID_HOME/ndk/$(ls -1 $ANDROID_HOME/ndk 2>/dev/null | sort -V | tail -1 || echo 26.1.10909125)"
mkdir -p "$HOME/android-sdk/cmdline-tools"
cd /tmp
if [ ! -d "$HOME/android-sdk/cmdline-tools/latest" ]; then
echo "下载 Android cmdline-tools..."
wget -q https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip -O cmdline-tools.zip
unzip -q cmdline-tools.zip
mv cmdline-tools "$HOME/android-sdk/cmdline-tools/latest"
fi
export PATH="$HOME/android-sdk/cmdline-tools/latest/bin:$PATH"
yes | sdkmanager --licenses >/dev/null
sdkmanager --install "platforms;android-34" "build-tools;34.0.0" "platform-tools" \
"ndk;26.1.10909125" "cmake;3.22.1"
echo "ANDROID_HOME=$ANDROID_HOME"
echo "ANDROID_NDK_HOME=$ANDROID_NDK_HOME"
echo "=== 4. Node 依赖 (与 Windows 共用 node_modules 也行, 这里重新装) ==="
cd "$WIN_PROJECT"
# 跳过 Windows 二进制不兼容的 sharp 等, npm 会自动 rebuild
npm install
echo "=== 5. Tauri Android 工程初始化 (首次执行) ==="
cd "$WIN_PROJECT/src-tauri"
if [ ! -d "gen" ]; then
npx tauri android init
fi
echo
echo "=== 搭建完成 ==="
echo "接下来:"
echo " bash scripts/wsl/build-apk.sh # 打 debug APK"
echo " bash scripts/wsl/build-apk.sh release # 打 release APK (需要签名)"
echo
echo "如要永久生效, 把下面加进 ~/.bashrc:"
echo " export ANDROID_HOME=$ANDROID_HOME"
echo " export ANDROID_NDK_HOME=$ANDROID_NDK_HOME"
echo " export PATH=\$PATH:$HOME/android-sdk/cmdline-tools/latest/bin:$HOME/android-sdk/platform-tools"