如何在 Google 重置密钥后更新 android 应用程序

How to update android application after Google has reset the key

我丢失了我的密钥库 (.jks) 文件,我很幸运 - 我以前使用过应用程序签名。 因此,Google 能够帮助我并重置我的密钥。

但是 SHA1 的下一步是什么 google 通过邮件给我? 他们给了我生成 upload_certificate.pem 文件的说明,我通过邮件发送给他们。

然后,Google的回答是:

Good news - I was able to register your new upload key, you would need to update your app to use the new upload key certificate: SHA1:....

现在,我尝试使用用于生成 PEM 文件的 jks 文件以及新创建的 jks 文件上传 APK。在 Google play console 我得到:

Your Android App Bundle is signed with the wrong key. Ensure that your app bundle is signed with the correct signing key and try again

下一步是什么?

推测您在 "Create an upload key" 下创建了一个新的上传密钥 following the instructions。大致是:

  • generate an upload key and store it safely。这会在密钥库中为您提供一个别名类似于 "upload" 的密钥,名称类似于 "upload-keystore.jks"
  • 使用类似 $ keytool -export -rfc -keystore upload-keystore.jks -alias upload -file upload_certificate.pem
  • 的命令以 PEM 格式导出您的证书

如果这是您所做的,那么您需要使用您在步骤 1 "upload-keystore.jks" 中创建的密钥库使用别名 "upload"

对您的应用进行签名

他们发送给您的 SHA1 只是确认您使用了正确密钥库的一种方式。如果您仍在使用您发送给他们的 PEM 的密钥库,那么如果您从 APK 中打印出证书密钥库,它应该与 SHA1 相匹配。

您可以使用以下命令从已签名的 APK 打印证书的 SHA1

keytool -list -printcert -jarfile app.apk

这会告诉您用于签名的证书 (key/keystore) 的 SHA1。

在我尝试了所有想到的方法之后,包括 "Invalidate cache and restart" 在 Android studio 中,有效的解决方案是 Build->clean。 感谢戴夫 Hubbard's answer