#!/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"