#!/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 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 # Tauri 2 + Android 需要 rustc 1.77+, 当前默认 toolchain 即可 echo "=== 3. Android SDK + NDK ===" export ANDROID_HOME="$HOME/android-sdk" mkdir -p "$ANDROID_HOME/cmdline-tools" if [ ! -d "$ANDROID_HOME/cmdline-tools/latest" ]; then cd /tmp 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 "$ANDROID_HOME/cmdline-tools/latest" fi export PATH="$ANDROID_HOME/cmdline-tools/latest/bin:$PATH" yes | sdkmanager --licenses >/dev/null || true # 与 src-tauri/gen/android 中 Tauri 生成的配置对齐: compileSdk=36, NDK 27.2 sdkmanager --install "platforms;android-36" "build-tools;36.0.0" "platform-tools" \ "ndk;27.2.12479018" "cmake;3.22.1" # 默认 NDK 版本 (build-apk.sh 也用这个) export ANDROID_NDK_HOME="$ANDROID_HOME/ndk/27.2.12479018" echo "ANDROID_HOME=$ANDROID_HOME" echo "ANDROID_NDK_HOME=$ANDROID_NDK_HOME" echo "=== 4. Node 依赖 (与 Windows 共用 node_modules 也行, 这里重新装) ===" cd "$WIN_PROJECT" 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 (默认未签名, 需配置 keystore 才能签名)" echo echo "Release 签名 (可选, 仅 release 用):" echo " 1. keytool -genkey -v -keystore ~/iboard-release.keystore -alias iboard -keyalg RSA -keysize 2048 -validity 10000" echo " 2. 在 ~/.gradle/gradle.properties 写:" echo " IBOARD_UPLOAD_STORE_FILE=/home/\$USER/iboard-release.keystore" echo " IBOARD_UPLOAD_KEY_ALIAS=iboard" echo " IBOARD_UPLOAD_STORE_PASSWORD=..." echo " IBOARD_UPLOAD_KEY_PASSWORD=..." echo " 3. 重跑 build-apk.sh release 即可" echo echo "如要永久生效, 把下面加进 ~/.bashrc:" echo " export ANDROID_HOME=$ANDROID_HOME" echo " export ANDROID_NDK_HOME=$ANDROID_NDK_HOME" echo " export PATH=\$PATH:$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:\$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin"