更新图标、修复 Android 构建和签名

1. 更新所有软件图标为 resources 文件夹中的图标
   - src-tauri/icons/icon.ico (Windows 应用图标)
   - src-tauri/icons/icon.png (托盘图标)
   - public/favicon.svg (浏览器图标)
   - src/assets/logoHD.svg 和 logo.svg (应用内 Logo)

2. 修复 Android APK 签名配置
   - 添加签名步骤,使用 apksigner 签名 APK
   - 支持通过 GitHub Secrets 配置签名密钥
   - 签名后自动删除未签名版本
   - 上传产物时排除未签名 APK

3. 修复三个架构 APK 被覆盖的问题
   - 改为单次构建命令包含所有架构:--target aarch64 --target armv7 --target x86_64
   - Tauri 会自动生成包含所有架构的 universal APK
This commit is contained in:
Fox_block
2026-03-22 14:25:31 +08:00
parent 2a679e88a4
commit a75f191367
6 changed files with 157 additions and 23 deletions
+48 -7
View File
@@ -210,19 +210,60 @@ jobs:
- name: 初始化 Android 项目
run: pnpm tauri android init
- name: 构建 AndroidARM64
run: pnpm tauri android build --target aarch64
- name: 构建 Android Universal APK
run: pnpm tauri android build --target aarch64 --target armv7 --target x86_64
- name: 构建 AndroidARMv7
run: pnpm tauri android build --target armv7
- name: 安装 Android SDK Build Tools
env:
ANDROID_SIGNING_KEY: ${{ secrets.ANDROID_SIGNING_KEY }}
if: ${{ env.ANDROID_SIGNING_KEY != '' }}
run: |
sdkmanager "build-tools;33.0.0"
- name: 构建 Androidx86_64
run: pnpm tauri android build --target x86_64
- name: 签名 APK
env:
ANDROID_SIGNING_KEY: ${{ secrets.ANDROID_SIGNING_KEY }}
ANDROID_KEY_ALIAS: ${{ secrets.ANDROID_KEY_ALIAS }}
ANDROID_KEY_PASSWORD: ${{ secrets.ANDROID_KEY_PASSWORD }}
ANDROID_STORE_PASSWORD: ${{ secrets.ANDROID_STORE_PASSWORD }}
if: ${{ env.ANDROID_SIGNING_KEY != '' }}
run: |
# 创建临时密钥库文件
echo "$ANDROID_SIGNING_KEY" | base64 -d > /tmp/android_keystore.jks
# 找到所有未签名的 APK 文件
find src-tauri/gen/android/app/build/outputs -name "*-unsigned.apk" -type f | while read -r apk; do
# 生成签名后的文件名
signed_apk="${apk/-unsigned/-signed}"
# 使用 apksigner 签名
"${ANDROID_SDK_ROOT}/build-tools/33.0.0/apksigner" sign \
--ks /tmp/android_keystore.jks \
--ks-key-alias "$ANDROID_KEY_ALIAS" \
--ks-pass pass:"$ANDROID_STORE_PASSWORD" \
--key-pass pass:"$ANDROID_KEY_PASSWORD" \
--out "$signed_apk" \
"$apk"
echo "已签名: $signed_apk"
# 验证签名
"${ANDROID_SDK_ROOT}/build-tools/33.0.0/apksigner" verify "$signed_apk"
# 删除未签名版本,重命名签名版本
rm "$apk"
mv "$signed_apk" "${apk/-unsigned/}"
done
# 清理密钥库
rm -f /tmp/android_keystore.jks
- uses: actions/upload-artifact@v4
with:
name: dist-android
path: src-tauri/gen/android/app/build/outputs/**/*.apk
path: |
src-tauri/gen/android/app/build/outputs/**/*.apk
!src-tauri/gen/android/app/build/outputs/**/*-unsigned.apk
release:
needs: [parse, build_win, build_mac, build_linux, build_android]