从Xamarin Keystore生成Google应用签名PEM的正确keytool命令
解答
常见误区澄清
- 执行Google提供的
genkeypair命令生成新密钥对,不会导致后续只能用Android Studio签名。生成的keystore是标准Java密钥库格式,Visual Studio的Xamarin发布流程可以正常识别加载,不存在工具绑定限制。 - 复用现有Xamarin keystore时,完全不需要执行
genkeypair相关操作。genkeypair的作用是生成全新的密钥对,仅适合没有现成上传密钥的用户使用,你已有可用keystore的情况下直接导出证书即可。
之前导出PEM不兼容的原因
你之前使用的导出命令存在两个问题:
- 缺少
-rfc参数:keytool -export默认导出DER格式的二进制证书,即使手动修改后缀为.pem也不符合Google要求的Base64编码PEM格式 - 命令中添加的
-keyalg RSA、-keysize 2048、-validity 9125属于密钥生成阶段的参数,在导出操作中属于无效参数,不会对导出结果产生任何作用
符合Google要求的正确导出命令
直接在终端执行以下命令,替换占位符为你自己的实际信息即可:
keytool -export -rfc -alias <你现有keystore的别名> -file <导出的PEM文件名>.pem -keystore <你的现有Xamarin keystore文件路径>
执行后按提示输入keystore的存储密码,就能生成符合要求的PEM文件。
校验小技巧:导出完成后用文本编辑器打开生成的PEM文件,文件内容以
-----BEGIN CERTIFICATE-----开头、以-----END CERTIFICATE-----结尾,就说明格式正确,提交到Google Play Console即可正常通过校验。
- 整个导出操作不会修改原有keystore的任何内容,导出完成后你依然可以在Visual Studio中正常使用该keystore完成Xamarin应用的归档、签名、发布全流程,无需额外调整配置。
内容的提问来源于stack exchange,提问作者User970008
相关产品推荐
相关产品推荐

