使用新密钥为.NET MAUI应用签名时出现jarsigner.exe exited with code 1错误求助
jarsigner.exe exited with code 1 错误的成因与解决方法(.NET MAUI Android签名)
可能成因
- 密钥库/别名密码不匹配或输入错误,包括大小写、特殊字符未转义等情况
- 相对路径解析异常,导致jarsigner无法找到密钥库文件
- 新生成的keystore.jks文件损坏或无效
- .NET MAUI Android SDK版本不兼容,签名工具或配置存在问题
- 密钥库文件权限不足,jarsigner无法读取
解决方法
1. 验证密码正确性
- 使用
keytool直接检查密钥库和别名:
依次输入密钥库密码和别名密码,若能正常输出密钥信息则密码无误;若报错,确认密码是否区分大小写,特殊字符需在命令行用引号包裹(如keytool -list -v -keystore ..\keystore.jks -alias mynewalias/p:AndroidSigningKeyPass="MyPass!")。 - 建议将密码写入项目Release配置的PropertyGroup中,避免命令行输入错误:
注意:不要将包含密码的配置提交到版本控制系统。<PropertyGroup Condition="'$(TargetFramework)' == 'net7.0-android' and '$(Configuration)' == 'Release'"> <AndroidKeyStore>True</AndroidKeyStore> <AndroidSigningKeyStore>..\keystore.jks</AndroidSigningKeyStore> <AndroidSigningKeyAlias>mynewalias</AndroidSigningKeyAlias> <AndroidSigningStorePass>MyPassword</AndroidSigningStorePass> <AndroidSigningKeyPass>MyPassword</AndroidSigningKeyPass> </PropertyGroup>
2. 修复密钥库路径与有效性
- 替换相对路径为绝对路径,避免上下文解析问题:
<AndroidSigningKeyStore>C:\YourProjectPath\keystore.jks</AndroidSigningKeyStore> - 若
keytool检查密钥库报错,重新生成上传密钥库:
重新导出keytool -genkey -v -keystore keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias mynewaliasupload_certificate.pem(keytool -export -rfc -keystore keystore.jks -alias mynewalias -file upload_certificate.pem)并确认Google已完成密钥重置。
3. 适配SDK与签名配置
- 确保Visual Studio中已安装对应net7.0-android版本的完整Android SDK Build Tools,优先使用稳定版。
- 在Release配置中添加签名算法指定,符合Google Play要求:
<AndroidSigningAlgorithm>SHA256withRSA</AndroidSigningAlgorithm>
4. 检查文件权限
- 右键
keystore.jks文件,进入「属性-安全」,确保当前用户拥有读取权限。
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

