+26
-16
@@ -13,9 +13,7 @@ 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
|
||||
openjdk-17-jdk-headless
|
||||
|
||||
echo "=== 2. Rust ==="
|
||||
if ! command -v cargo >/dev/null 2>&1; then
|
||||
@@ -24,30 +22,33 @@ if ! command -v cargo >/dev/null 2>&1; then
|
||||
fi
|
||||
rustc --version
|
||||
cargo --version
|
||||
# Tauri 2 + Android 需要 rustc 1.77+, 当前默认 toolchain 即可
|
||||
|
||||
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
|
||||
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 "$HOME/android-sdk/cmdline-tools/latest"
|
||||
mv cmdline-tools "$ANDROID_HOME/cmdline-tools/latest"
|
||||
fi
|
||||
export PATH="$HOME/android-sdk/cmdline-tools/latest/bin:$PATH"
|
||||
export PATH="$ANDROID_HOME/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"
|
||||
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"
|
||||
# 跳过 Windows 二进制不兼容的 sharp 等, npm 会自动 rebuild
|
||||
npm install
|
||||
|
||||
echo "=== 5. Tauri Android 工程初始化 (首次执行) ==="
|
||||
@@ -60,9 +61,18 @@ echo
|
||||
echo "=== 搭建完成 ==="
|
||||
echo "接下来:"
|
||||
echo " bash scripts/wsl/build-apk.sh # 打 debug APK"
|
||||
echo " bash scripts/wsl/build-apk.sh release # 打 release 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:$HOME/android-sdk/cmdline-tools/latest/bin:$HOME/android-sdk/platform-tools"
|
||||
echo " export PATH=\$PATH:$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:\$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin"
|
||||
Reference in New Issue
Block a user