修改架构,移动端优先。
save
This commit is contained in:
@@ -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, 请检查上面日志)"
|
||||
@@ -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"
|
||||
@@ -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"
|
||||
Reference in New Issue
Block a user