好的,伙计们.. 长话短说,我正在一台我不再可以访问的计算机上进行开发。我能够检索源代码,但不能检索用于签署我的应用程序并将其发布到市场的 .keystore 文件(有几个更新)。如果我想更新,我和我可怜的用户会不走运吗?
我知道用于签署密钥的密码(至少它可能是三个密码之一),那么我可以创建另一个密码吗?一定有办法解决这个问题。硬盘驱动器故障怎么办?
好的,伙计们.. 长话短说,我正在一台我不再可以访问的计算机上进行开发。我能够检索源代码,但不能检索用于签署我的应用程序并将其发布到市场的 .keystore 文件(有几个更新)。如果我想更新,我和我可怜的用户会不走运吗?
我知道用于签署密钥的密码(至少它可能是三个密码之一),那么我可以创建另一个密码吗?一定有办法解决这个问题。硬盘驱动器故障怎么办?
现在可以不用担心,这里是重置 .JKS 文件的完整和最终步骤。
更新:正如 Play Console 帮助中所述(滚动到底部),您现在应该已经执行了第 3 步(创建新的 .jks,转换为 .pem),然后才使用 upload_cert 和 .pem 文件填写表格随附的。这将使您的支持过程更轻松、更快捷。
步骤1
从您的Google Play 商店控制台下载UPLOAD CERTIFICATE(文件名 - upload_cert.der )
第2步
转到此链接https://support.google.com/googleplay/android-developer/contact/key?hl=en并使用您的有效电子邮件 ID 填写申请表并上传文件 (upload_cert.der)。
第三步
现在您将收到来自支持团队的电子邮件,他们不需要您的 .JKS 文件,但此处的 .PEM 文件是电子邮件示例。
第4步
要将 .JKS 文件转换为 .PEM 文件,您只需下载KeyStore Explorer
回复邮件后,等待 48 到 72 小时,您的密钥库填充将重置。
面临同样的问题。我试图通过已删除的文件恢复工具来恢复它,但它失败了。所以,没有其他办法:你应该发出另一个应用程序。
通常,密钥库中存在的唯一建议是:“始终备份它!”
直到今天,丢失您的密钥将无法使用新版本更新您的应用程序。在这种情况下,唯一的解决方案是发布一个带有新包名称和密钥的新应用程序,并要求所有用户安装它。
从今天开始,Play 管理中心中的应用签名密钥现在由 Google Play 安全管理,这意味着您只需负责管理您的上传密钥。如果您的上传密钥被泄露或丢失,Google 的开发者运营团队可以通过验证您的身份和重置您的上传密钥来提供帮助。Google 仍将使用相同的应用签名密钥重新签名,从而允许应用照常更新。
对于现有应用,需要将您的应用签名密钥转移到 Google Play。对于新应用,Google 可以生成您的应用签名密钥。注册应用签名后,您可以使用上传密钥对您的 APK 进行签名,Google 会使用该密钥来验证您的身份。然后,他们将剥离该签名并使用应用签名密钥重新签署您的应用。
很长一段时间都是可能的。
keytool -genkeypair -alias newalias -keyalg RSA -keysize 2048 -validity 9125 -keystore nameofkeystore.jks
此密钥必须是 2048 位 RSA 密钥,并且有效期为 25 年。
keytool -export -rfc -alias newalias -file upload_certificate.pem -keystore nameofkeystore.jks
然后上传这个 pem 文件并填写表格并提交到这个站点。一旦我们注册了新的上传密钥,您就会收到一封电子邮件。仅接受来自 Play 管理中心帐户所有者的密钥重置请求。
一切都很好。您可以使用新的 jks 文件发布新版本的 apk。
如果您知道您的密钥库密码,您仍然没有关联的私钥来签署您的应用程序。您也没有机会生成与您的公钥对应的相同私钥。
因此:始终备份您的密钥库文件。它与您的源代码一样重要。
如果您为您的应用程序启用了 Google Play 应用程序签名,则无需担心。
要检查您是否启用了 Google Play 应用签名,请在您的 Google Play 控制台中转到发布管理 -> 应用签名。
如果启用,您可以通过填写支持表格联系 Google Play 支持,或者您也可以在此处选择与支持人员进行实时聊天:https: //support.google.com/googleplay/android-developer/answer/7218994? hl=en
向他们解释您的问题,他们将告诉您接下来的步骤,包括创建一个新的 2048 位 RSA 密钥库,有效期为 25 年,并将密钥导出为 PEM 格式并通过电子邮件发送给他们。
要将密钥导出为 PEM 格式:
keytool -export -rfc -alias upload -file upload_certificate.pem -keystore keystore.jks
从漫长的日子里,我也为此寻找解决方案,但直到现在还没有成功。如果您拥有应用程序 apk 的最新版本,则可以使用 jarsigner cmd 命令从中检索证书。但是你需要一个私钥来更新。Google Play 并没有为此提供任何放松。
现在有可能,在 2017 年 5 月之后,如果您丢失了密钥库或密钥库密码,您可以更新您的应用程序。您无法恢复丢失的密钥库,但可以替换 playstore 上的密钥库。 点击这里
应用签名流程:
您可以在选择加入 Google Play 应用签名之前或之后上传使用原始应用签名密钥签名的 APK。
如果您开始使用 Android App Bundle,则可以在测试轨道中对其进行测试,同时在生产环境中使用现有的 APK。以下是该过程的工作原理:
- 签署您的 app bundle 或 APK 并将其上传到您的 Play 管理中心。
根据您上传的内容,签名过程的不同之处如下:
- App bundle:Google 从您的 app bundle 生成优化的 APK,并使用应用签名密钥对其进行签名。
- 使用上传密钥签名的 APK:Google 验证并从 APK 中剥离您的签名,然后使用应用签名密钥对 APK 进行签名。
- APK 使用应用签名密钥签名:Google 验证签名。Google 向用户提供签名的 APK。
是的,您可以使用新密钥发布对现有应用程序的更新!
Google 现在允许您通过 Google 支持中的电子邮件/实时聊天请求他们重置新密钥,从而将新密钥上传到现有应用程序。
此过程需要 1-2 个工作日。
我遵循此过程并使用新密钥将更新上传到同一个应用程序。Google Play 商店技术团队帮我重置了之前的密钥。
现在有一个专门的表格和说明,用于丢失密钥库的情况。从Play 管理中心的帮助页面:
上传密钥丢失或泄露?
如果您丢失了私有上传密钥,或者它已被泄露,您可以创建一个新密钥,然后让您的帐户所有者联系支持人员以重置密钥。联系支持人员时,请确保您的帐户所有者附加了 upload_certificate.pem 文件。
在我们的支持团队注册新的上传密钥后,您会收到一封电子邮件,然后您可以更新您的密钥库并向 API 提供商注册您的密钥。
重要提示:重置您的上传密钥不会影响 Google Play 在将 APK 交付给用户之前用于重新签署 APK 的应用签名密钥。
生成新密钥和 PEM 证书的步骤:
keytool -genkeypair -alias upload -keyalg RSA -keysize 2048 -validity 9125 -keystore keystore.jks
(*此密钥必须是 2048 位 RSA 密钥,有效期为 25 年。)
将该密钥的证书导出为 PEM 格式:
keytool -export -rfc -alias upload -file upload_certificate.pem -keystore keystore.jks
一定有办法解决这个问题。硬盘驱动器故障怎么办?
我想补充一点,始终将密钥库的备份保留在 Google Drive、Dropbox 等云存储中,或者通过电子邮件发送给自己。