68 lines
2.4 KiB
Bash
68 lines
2.4 KiB
Bash
#!/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" |