.NET MAUI Android应用Play签名报错:私钥加密异常或不支持
问题描述
- 原Xamarin Android应用通过VS Mac使用本地keystore签名发布APK,流程正常。迁移至.NET MAUI后尝试发布.aab文件,Google Play Console要求启用「Play app signing」。
- 尝试导入旧keystore时,发现VS现在需要输入别名、存储密码和密钥密码(原Xamarin环境仅需密码),怀疑密钥库格式差异,遂新建keystore。
- 按Google指引使用PEPK工具生成加密私钥,执行命令:
成功生成"C:\Program Files\Java\jdk-23.0.1\bin\java" -jar pepk.jar --keystore=appname.keystore --alias=appnamealias --output=encrypted_private_key.pem --rsa-aes-encryption --encryption-key-path=encryption_public_key.pemencrypted_private_key.pem,但上传时收到报错:The private key was not properly encrypted, or is not a type of key we support。 - 已尝试更换JDK版本,仍未解决,需了解如何在Visual Studio中导入旧Xamarin keystore。
解决方案
1. 导入旧Xamarin keystore到VS
步骤1:获取旧keystore的别名与密码信息
使用Java的keytool命令查看旧keystore详情:
keytool -list -v -keystore /path/to/your/old_xamarin.keystore
输入存储密码后,可查看:
- 密钥库中的别名(Alias name)
- 密钥密码(若与存储密码不同,旧Xamarin通常设置为同一密码)
步骤2:在VS中配置旧keystore
- 右键MAUI项目 → 选择「发布」→ 选择「Android App Bundle」发布方式。
- 进入签名配置步骤,选择「选择现有密钥库」,定位到旧keystore文件路径。
- 输入存储密码,点击「刷新」按钮,VS会自动加载keystore内的别名列表。
- 选择对应的别名,输入密钥密码(与存储密码一致则填相同内容)。
- 保存配置即可用旧keystore签名.aab文件。
2. 解决Play Console上传加密私钥报错
若需用旧keystore配置Play App Signing,按以下排查:
- 使用Google官方最新版PEPK工具,避免第三方版本。
- 确保命令中的
--alias参数与keytool查到的别名完全一致(区分大小写)。 - 切换至JDK 8或11版本执行PEPK命令(高版本JDK如23可能存在兼容性问题)。
- 确认命令中所有文件路径正确,可使用绝对路径避免目录问题。
内容的提问来源于stack exchange,提问作者Josh Bula
相关产品推荐
相关产品推荐

