You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitHub Actions中.NET MAUI Android构建失败:jarsigner.exe退出代码1

.NET MAUI Android应用GitHub Actions构建签名时jarsigner.exe报错问题

问题概述

尝试通过GitHub Actions构建并签名.NET MAUI Android应用,本地构建完全正常,GitHub Actions工作流在签名阶段前的步骤运行顺畅,但构建时遭遇jarsigner.exe相关错误。

错误详情

错误信息如下:

C:\Program Files\dotnet\packs\Microsoft.Android.Sdk.Windows\33.0.68\tools\Xamarin.Android.Common.targets(2335,2): error MSB6006: "jarsigner.exe" exited with code 1. [D:\a\App.name\App.name\App.name\App.name.csproj::TargetFramework=net7.0-android]

工作流相关片段:

- name: Setup Java
  uses: actions/setup-java@v3
  with:
    distribution: 'microsoft'
    java-version: '17'

- name: Build
  run: dotnet build App.name/App.name.csproj -c Release -f net7.0-android /p:AndroidSigningKeyPass=${{ secrets.KEYSTORE_PASSWORD }} /p:AndroidSigningStorePass=${{ secrets.KEYSTORE_PASSWORD_STORE }} --no-restore

补充信息

  • keystore文件已正确解密并在GitHub Secrets中可用
  • 使用Microsoft发行版的Java 17
  • 依赖还原、MAUI工作负载安装等前置步骤均无问题

原因分析及解决建议

常见触发原因

  1. 签名参数缺失:仅指定了AndroidSigningKeyPass和AndroidSigningStorePass,但缺少AndroidSigningKeyAlias(密钥别名)和AndroidSigningStoreFile(keystore文件路径)两个核心参数,jarsigner无法完成签名流程,直接退出。
  2. keystore路径错误:即使文件已解密,若构建命令中指定的AndroidSigningStoreFile路径与实际存放位置不匹配,jarsigner找不到文件就会报错。
  3. Java版本兼容性:部分旧版本Android SDK工具与Java 17存在适配问题,这类场景下Java 11通常更稳定。
  4. 密码不匹配:可能存在KEYSTORE_PASSWORD与KEYSTORE_PASSWORD_STORE混淆,或者密钥别名密码和存储密码不一致的情况。

对应解决操作

  • 补充完整签名参数:在dotnet build命令中添加/p:AndroidSigningKeyAlias=你的密钥别名和/p:AndroidSigningStoreFile=keystore文件的绝对/相对路径。
  • 验证文件路径:在Build步骤前添加dir(Windows环境)或ls(Linux环境)命令,确认解密后的keystore文件存在于指定路径。
  • 切换Java版本:将Setup Java步骤的java-version改为11,测试兼容性。
  • 核对密码正确性:在本地用相同的keystore文件和密码测试签名流程,排除密码错误的可能。

是否需要分享完整yaml文件?是的,完整工作流文件能帮助排查keystore解密步骤、环境变量配置等细节问题。

内容的提问来源于stack exchange,提问作者AllramEst

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 23:24:58