我丢失了.keystore文件?


87

好吧,人们。长话短说,我正在使用无法访问的计算机进行开发。我能够检索源代码,但无法检索用于签名和将我的应用程序发布到市场(带有多个更新)的.keystore文件。如果我想更新,我和我的可怜用户难道不是很幸运吗?

我知道用于签名密钥的密码(至少是它可能的三个)之一,所以我可以创建另一个吗?必须有解决的办法..硬盘故障怎么办?


14
如果变通的办法,它会破坏它应该是为整个安全的目的!
2012年

2
检查此答案现在可以。
开发者Vicky

Answers:


79

面临同样的问题。我试图通过已删除的文件还原工具来还原它,但是失败了。因此,没有其他方法:您应该发布另一个应用程序。

通常,密钥库中存在的唯一建议是:“始终备份它!”


1
我遇到了这个问题,不得不重新发布我的应用程序的新版本。从那时起,我所有的钥匙都放在Dropbox上。
Varun

更新到Android Studio 3.3之后,我的旧密钥库在对应用程序进行签名时不再被接受。显示“无法恢复密钥”错误消息。
亚尔

55

现在可能不用担心,这里是重置.JKS文件的完整步骤和最终步骤。

我成功地休息了我的钥匙

步骤1

从您的Google Play商店控制台下载UPLOAD CERTIFICATE(文件名-upload_cert.der

下载upload_cert.der文件

第2步

转到此LINK https://support.google.com/googleplay/android-developer/contact/otherbugs,然后使用有效的电子邮件ID填写申请表,然后上传文件(upload_cert.der)。

填写申请表

第三步

现在您将获得支持团队的电子邮件,他们不需要您的.JKS文件,但是这里的.PEM文件是电子邮件示例。

在此处输入图片说明

第四步

要将.JKS文件转换为.PEM文件,只需下载KeyStore Explorer JKS转PEM

回复邮件后,等待48到72个小时,您的密钥库填充将重置。


6
如果未为应用启用Google Play应用登录功能,该怎么办?
Vipul Behl

除了它什么都没有找到。Google于2017
开发人员Vicky

1
在第3步中。我是否需要创建新的jks文件并将其转换为pem文件,并将其作为定期邮件发送给他们。这是核心步骤吗???
GiveJob

1
是的,您必须创建新的JSK文件并转换为PEM @HemanthSP
开发人员Vicky

是的,我做了,现在我的新密钥库可以上传了,我确认了Google邮件
GiveJob

35

直到今天,丢失密钥将无法使用新版本更新您的应用程序。在这种情况下,唯一的解决方案是发布具有新程序包名称和密钥的新应用程序,并要求所有用户进行安装。

从今天开始,现在由Google Play安全管理Play控制台中的应用签名密钥,这意味着您仅负责管理上传密钥。如果您的上传密钥被盗用或丢失,Google的开发人员运营团队可以通过验证您的身份并重置您的上传密钥来为您提供帮助。Google仍将使用相同的应用程序签名密钥重新签名,以允许该应用程序照常更新。

对于现有应用,它需要将您的应用签名密钥转移到Google Play。对于新应用,Google可以生成您的应用签名密钥。注册应用签名后,您便可以使用一个上传密钥对APK进行签名,Google会使用该密钥对您的身份进行身份验证。然后,他们将删除该签名,并使用应用程序签名密钥对您的应用程序重新签名。

参考:Play控制台帮助>管理您的应用签名密钥


13

有可能很长一段时间。

  1. 请按照Android Studio帮助中心中的说明生成新密钥。它必须与以前的任何键都不相同。或者,您可以使用以下命令行来生成新密钥:

keytool -genkeypair -alias newalias -keyalg RSA -keysize 2048 -validity 9125 -keystore nameofkeystore.jks

该密钥必须是2048位RSA密钥,并且有效期为25年。

  1. 将该密钥的证书导出为PEM格式:

keytool -export -rfc -alias newalias -file upload_certificate.pem -keystore nameofkeystore.jks

然后上传此pem文件并填写表格并将其提交到此站点。一旦我们注册了新的上传密钥,您将收到一封电子邮件。仅接受来自Play控制台帐户所有者的密钥重置请求

一切都很好。您可以使用新的jks文件发布新版本的APK。


2
仅当您启用了Google Play应用签名后,此方法才有效。
Sumit

不行 无需Google Play应用签名。至少我没有启用它。
ksgngrkn

这在任何地方都有记录吗?
Sumit 18'Feb

这仅适用于应用程序签名应用程序。我刚刚确认。
Euridice19年

11

如果您知道密钥存储区密码,则仍然没有关联的私钥来对您的应用程序进行签名。您也没有机会生成与您的公钥对应的相同私钥。

因此:始终备份您的密钥库文件。它和您的源代码一样重要。


1
所以,如果我正确地知道了,那么每个密钥库都会随机生成这个私钥,对吗?我们唯一知道的是公钥,对吗?
iCantSeeSharp

如果您具有对密钥库的授权访问权限,则还可以导出私钥并将其导入到其他密钥库或服务中。
saxos

将密钥库文件和密钥与存储库一起存储是否理想?
霓虹灯Warge

3

如果您为应用程序启用了Google Play应用签名,则无需担心。

要检查您是否启用了Google Play应用签名,请在Google Play控制台中转到发布管理->应用签名。

如果已启用,则可以通过填写支持表格与Google Play支持人员联系,或者您也可以选择与支持人员进行实时聊天,网址为https : //support.google.com/googleplay/android-developer/answer/7218994? hl = en

向他们解释您的问题,他们将告诉您下一步,包括创建具有25年有效期的新2048位RSA密钥库,并将密钥导出为PEM格式并将其通过电子邮件发送给他们。

要将密钥导出为PEM格式:

keytool -export -rfc -alias upload -file upload_certificate.pem -keystore keystore.jks

这应该是正确的答案。
Caio Santos,

2

从很长一段时间以来,我也一直在寻找解决方案,但直到现在都没有成功。如果您拥有应用程序apk的最新版本,则可以使用jarsigner cmd命令从中获取证书。但是您需要一个私钥进行更新。Google Play并未为此提供任何放松。


3
您是否有更多有关此操作的信息?
Zabs 2015年

1

我已经使用android studio生成了签名的apk,因此在“密钥存储路径”中,我只是键入了一些没有扩展名的名称,并填写了此弹出窗口并为应用程序签名。 在此处输入图片说明

下次发布该应用程序时,我不记得创建该应用程序的路径和名称。

我以某种方式找到默认位置为“ C:\ Program Files \ Java \ jdk1.8.0_45 \ jre \ bin”:\ jre \ bin

然后在该文件夹中按日期排序,然后我尝试使用最近的文件,它对我有用。

注意:您应该记住密钥存储区密码和密钥密码。


0

必须有解决的办法..硬盘故障怎么办?

我想补充一点,就是始终将密钥库的备份保存在Google云端硬盘,Dropbox等云存储中,或者通过电子邮件发送给自己。


当然,有很多方法可以解决,只是谷歌不会这么做。Windows应用商店(即使没有人使用它)让您从Visual Studio中对应用程序进行签名(您只需使用您的应用商店帐户登录),然后可以轻松地将其上传到应用商店。谷歌 - ; 微软++;
胡安·卡洛斯

0

是的,您可以使用新密钥发布对现有应用程序的更新!

Google现在允许您通过要求他们通过Google支持中的电子邮件/在线聊天重设新密钥来将新密钥上传到现有应用。

此过程需要1-2个工作日。

我遵循此过程,并使用新密钥将更新上传到同一应用程序。Google Play商店技术团队帮助我重置了先前的密钥。


0

现在有可能,如果您丢失了密钥库或密钥库密码,则可以在2017年5月之后更新应用程序。您无法恢复丢失的密钥库,但可以替换playstore上的密钥库。 点击这里

应用签名过程:

您可以在选择通过Google Play进行应用签名之前或之后上传使用原始应用签名密钥签名的APK。

如果您开始使用Android App Bundle,则可以在生产中使用现有的APK时在测试轨道中对其进行测试。该过程的工作原理如下:

  1. 签名您的应用捆绑包或APK,并将其上传到您的Play控制台。
  2. 根据您上传的内容,以下是签名过程的不同之处:

    • 应用程序捆绑包:Google从您的应用程序捆绑包中生成优化的APK,并使用应用程序签名密钥对其进行签名。
    • 使用上传密钥签名的APK:Google验证并从APK中剥离了您的签名,然后使用应用签名密钥对APK退出。
    • 使用应用程序签名密钥签名的APK:Google验证签名。Google向用户提供签名的APK。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.