以某种方式,我设法为使用Xamarin开发并已发布的Android应用程序保存了错误的密钥库。 当我想使用我认为正确的密钥库将更新上传到Google Play商店时, SHA证书不匹配。
很幸运,我已经注册了Google Play应用签名,因此他们能够为我重置上传密钥。 为了重置上传密钥I:
1。(不知道我是否必须这样做才能生成新的上传密钥)。在Xamarin中为Android项目生成了新的存档和新的密钥库,并将APK导出到了文件夹中。在该文件夹中,我执行以下步骤的命令行:
2。使用命令行生成新的上传密钥: keytool -genkeypair -alias upload -keyalg RSA -keysize 2048 -validity 9125 -keystore keystore.jks
3。将该密钥的证书导出到* .pem文件: keytool -export -rfc -alias upload -file upload_certificate.pem -keystore keystore.jks
4。将* .pem发送给Google Play开发者支持。**
注意:为了能够在Windows 10命令提示符下使用keytool命令,我搜索并打开了环境变量,在用户变量下找到PATH,右键单击并编辑,并添加了keytool.exe的新位置路径位于:C:\ Program Files \ Java \ jre1.8.0_191 \ bin
现在我有了一个* .pem文件和* .jks文件,如何为我的Xamarin Android项目创建一个新的APK文件,该文件将作为更新并在Visual Studio / Xamarin中使用新的上传密钥进行签名?
答案 0 :(得分:1)
另一种替代方法是:
1)使用命令promt生成新密钥:
keytool -genkeypair -alias upload -keyalg RSA -keysize 2048 -validity 9125 -keystore keystore.jks
2)从应用程序签名中,选择导入选项并导入创建的密钥路径。
3)创建构建并提交到Play商店。
答案 1 :(得分:0)
我想出了办法。
将* .pem文件发送给Google Play开发者支持以重置上载密钥后,他们确认该文件已成功重置(通过Google App签名),但要花几天时间才能激活。
激活后,请执行以下步骤:
1。转到Visual Studio并从“构建/存档”中存档Android项目
2。在“存档”菜单选项中,选择最新的存档,然后单击“打开文件夹”。这将打开一个未签名 * .apk文件所在的文件夹。需要手动签名 与上面提到的* .jks密钥库文件(keystore.jks)。
首先用zip对齐未签名的存档(确保将C:\ Program Files \ Java \ jre1.8.0_191 \ bin添加到用户变量中的PATH中):
zipalign -v -p 4 my-app-unsigned.apk my-app-unsigned-aligned.apk
使用keystore.jks手动签署zipaligned * .apk文件
apksigner登录--ks keystore.jks --out my-app-release.apk my-app-unsigned-aligned.apk
签名过程将询问创建keystore.jks / *。pem文件时使用的密码。之后,生成的apk可随时作为应用更新上传到Google Play商店。 Keystore.jks现在是新的上载密钥。
答案 2 :(得分:0)
我会告诉你,丢失了我的上传密钥时发生了什么。
那时我还只是一个初学者,我不知道保留签名密钥是否那么重要。无论如何,我丢了它。
我通过访问来请求一个新的上传密钥: PlayConsoleSupport
填写了必填字段。
他们花了一两天的时间来答复完整但令人困惑的说明,因为我是初学者,因此创建另一个上传密钥并向他们发送.PEM文件。
我照他们在电子邮件中所说的那样做了 创建了另一个密钥库。
将其保存在C:users / **** / uploadkey.jks中[重要]
打开cmd并写了我在电子邮件中收到的命令,我不记得了。
那给了我certificate.pem
我回复了该电子邮件并随附了证书。pem
几天后,我收到一封电子邮件,指出我的上传密钥已激活,并且我必须用它签名以后的所有更新。