From eac7b62dc257f381a2082a85365fda88b5b8a888 Mon Sep 17 00:00:00 2001 From: Fox_block Date: Sun, 22 Mar 2026 14:57:38 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20Android=20APK=20=E7=AD=BE?= =?UTF-8?q?=E5=90=8D=EF=BC=9A=E8=87=AA=E5=8A=A8=E6=9F=A5=E6=89=BE=20apksig?= =?UTF-8?q?ner=20=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除 sdkmanager 安装步骤(命令不存在) - 使用 find 命令自动查找 apksigner 可执行文件 - 简化签名流程,依赖 Android SDK 中已有的 build-tools --- .github/workflows/build.yml | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2c7e563..d8dfe9f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -213,13 +213,6 @@ jobs: - name: 构建 Android Universal APK run: pnpm tauri android build --target aarch64 --target armv7 --target x86_64 - - 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: 签名 APK env: ANDROID_SIGNING_KEY: ${{ secrets.ANDROID_SIGNING_KEY }} @@ -228,6 +221,14 @@ jobs: ANDROID_STORE_PASSWORD: ${{ secrets.ANDROID_STORE_PASSWORD }} if: ${{ env.ANDROID_SIGNING_KEY != '' }} run: | + # 找到 Android SDK 中的 apksigner + APKSIGNER=$(find ${ANDROID_SDK_ROOT} -name "apksigner" -type f 2>/dev/null | head -1) + if [ -z "$APKSIGNER" ]; then + echo "错误: 未找到 apksigner" + exit 1 + fi + echo "使用 apksigner: $APKSIGNER" + # 创建临时密钥库文件 echo "$ANDROID_SIGNING_KEY" | base64 -d > /tmp/android_keystore.jks @@ -237,7 +238,7 @@ jobs: signed_apk="${apk/-unsigned/-signed}" # 使用 apksigner 签名 - "${ANDROID_SDK_ROOT}/build-tools/33.0.0/apksigner" sign \ + "$APKSIGNER" sign \ --ks /tmp/android_keystore.jks \ --ks-key-alias "$ANDROID_KEY_ALIAS" \ --ks-pass pass:"$ANDROID_STORE_PASSWORD" \ @@ -248,7 +249,7 @@ jobs: echo "已签名: $signed_apk" # 验证签名 - "${ANDROID_SDK_ROOT}/build-tools/33.0.0/apksigner" verify "$signed_apk" + "$APKSIGNER" verify "$signed_apk" # 删除未签名版本,重命名签名版本 rm "$apk"