好吧,伙计们……长话短说,我正在一台我无法再访问的计算机上进行开发。我能够检索源代码,但无法检索用于签名并将我的应用程序发布到市场的 .keystore 文件(有多次更新)。如果我想要更新,我和我可怜的用户会不会运气不好?
我知道用于签署密钥的密码(至少是三个密码之一),那么我可以创建另一个密码吗?一定有办法解决这个问题......硬盘故障怎么办?
Ok folks.. long story short, I was developing on a computer that I no longer have access to. I was able to retrieve the source code, but not the .keystore file used to sign and publish my application to the market (with several updates). Am I, and my poor users, out of luck if I ever want to update?
I know the password used to sign the key (at least it is one of three it could be), so can I create another? There must be a way around this.. what about a hard drive fail?
发布评论
评论(12)
如果您知道密钥库密码,您仍然没有关联的私钥来签署您的应用程序。您也没有机会生成与您的公钥对应的相同私钥。
因此:请务必备份您的密钥库文件。它与源代码一样重要。
If you know your keystore password, you still don't have the associated private key to sign your app. You also have no chance to generate the same private key which corresponds to your public key.
Therefore: Always backup your keystore file. It's as important as your source code.
如果您已为您的应用程序启用了 Google Play 应用程序签名,则无需担心。
要检查您是否启用了 Google Play 应用签名,请转到发布管理 ->应用程序签名,在您的 Google Play 控制台中。
如果已启用,您可以通过填写支持表格来联系 Google Play 支持人员,或者您也可以选择与此处的支持人员进行实时聊天:https://support.google.com/googleplay/android-developer/answer/7218994?hl=en
向他们解释您的问题,他们会告诉他们接下来的步骤包括创建一个新的具有 25 年有效期的 2048 位 RSA 密钥库,并将密钥导出为 PEM 格式并通过电子邮件发送给他们。
要将密钥导出为 PEM 格式:
If you have enabled Google Play App signing for your application you do not need to worry.
To check if you have Google Play App signing enabled, go to Release management -> App Signing, in your Google Play Console.
If it is enabled you can contact Google Play Support by filling the support form or else you can also opt for live chat with a support personnel here: https://support.google.com/googleplay/android-developer/answer/7218994?hl=en
Explain them your issue and they will tell you the next steps which include creating a new 2048 bit RSA keystore with 25 years validity and exporting the key to PEM format and emailing it to them.
To export key to PEM format:
长期以来,我也为此寻找解决方案,但到目前为止还没有成功。如果您拥有应用程序 apk 的最新版本,则可以使用 jarsigner cmd 命令从中检索证书。但您需要私钥才能更新。 Google Play 并没有为此提供任何放松。
From long days, I also search a solution for that, but not successfully till now. If you have the last version of your app apk, then you can retrieve certificates from that by using the jarsigner cmd command. But you need a private key for update. Google Play did not provide any relaxation for that.
我已经使用 android studio 生成了签名的 apk,因此在“密钥存储路径”中,我只是输入了一些不带扩展名的名称,然后填写此弹出窗口并签署了应用程序。
下次发布应用程序时,我不记得创建它的路径和名称。
不知怎的,我找到了默认位置“C:\ Program Files \ Java \ jdk1.8.0_45 \ jre \ bin”:\ jre \ bin
并在该文件夹中按日期短,然后我尝试使用最近的文件
注意:您应该记住密钥库密码和密钥密码。
I have generated the signed apk using android studio , so in the "key Store Path" i just typed some name without extension, and fill this popup and signed the application.
next time for publishing the application i don't remember the path and name where it was created.
somehow i find the default location which is "C:\Program Files\Java\jdk1.8.0_45\jre\bin" : \jre\bin
and in that folder short by date ,then i tried with recent file and it worked for me.
Note : you should remember the Key store password and key password.
是的,您可以使用新密钥发布现有应用程序的更新!
Google 现在允许您通过 Google 支持中的电子邮件/实时聊天请求他们重置密钥,从而将新密钥上传到现有应用程序。
此过程需要 1-2 个工作日。
我遵循此流程,并使用新密钥将更新上传到同一应用程序。
Google Play 商店技术团队帮助我重置了之前的密钥。
Yes, you can release an update to existing app with a new key!
Google now allows you to upload the new key to existing app by requesting them to reset it through email/live chat in Google Support.
This process takes 1-2 business days.
I followed this process and uploaded an update to the same app with a new key.
Google Play Store technical team helped me to reset the previous key.
现在是可能的,2017 年 5 月之后,如果您丢失了密钥库或密钥库密码,您可以更新您的应用程序。您无法恢复丢失的密钥库,但可以在 Playstore 上替换密钥库。
点击此处
It’s Possible now, After May 2017 you can Update your app if you lost your keystore or keystore password. You can not recover your lost keystore but you can replace keystore on playstore.
Click here
现在有专门的表格和说明来应对丢失密钥库的情况。来自Play 管理中心的帮助页面:
生成新密钥和 PEM 证书的步骤:
There's now a dedicated form and instructions for case of loosing the keystore. From Play Console's help page:
Steps to generate new key and PEM certificate:
我想补充一点,始终在 Google Drive、Dropbox 等云存储中保留密钥库的备份,或者通过电子邮件将其发送给自己。
I would like to add that always keep a backup of the keystore in cloud storage like Google Drive, Dropbox or email it to yourself.
现在不用担心,这是重置 .JKS 文件的完整和最终步骤。
更新:正如 Play 管理中心帮助中所述此处,您现在应该已经执行了之前的步骤 3(创建新的 .jks,转换为 .pem),并且只需然后填写附有 upload_cert 和 .pem 文件的表单。这将使您的支持流程变得更加轻松快捷。
第 1 步
从您的下载上传证书(文件名 - upload_cert.der) Google Play 商店控制台
第 2 步
转到此链接 https://support.google.com/googleplay/android-developer/contact/key?hl=en 并填写申请表使用您的有效电子邮件 ID 并上传文件 (upload_cert.der)。
步骤3
现在您将收到支持团队发来的电子邮件,他们不需要您的.JKS 文件,但这里的.PEM 文件是电子邮件示例。
第 4 步
将 .JKS 文件转换为 .PEM 文件,您只需下载 密钥库浏览器
回复邮件后,等待 48 到 72 小时,您的密钥库填充将重置。
Now it is possible don't worry, here is the full and final steps to reset .JKS file.
UPDATE: As it states in the Play Console Help here, you should now already do step 3 before (create new .jks, convert to .pem) and only then fill out the form with the upload_cert and .pem file attached. This will make the support process easier and faster for you.
Step-1
Download the UPLOAD CERTIFICATE (file name - upload_cert.der) from your Google Play Store Console
Step-2
Go to this LINK https://support.google.com/googleplay/android-developer/contact/key?hl=en And fill the application form with your valid Email ID and upload the file (upload_cert.der).
Step-3
Now you will get the Email from support team, and they don't need your .JKS file but .PEM file here is the email Sample.
Step-4
to convert .JKS file to .PEM file you just have to download KeyStore Explorer
After replying the Mail, wait for 48 to 72 hours your keystore fill will reset.
面临同样的问题。我试图通过删除的文件恢复工具来恢复它,但失败了。因此,没有其他办法:您应该发出另一份申请。
一般来说,密钥库上存在的唯一建议是:“始终备份它!”
Faced the same problem. I was trying to restore it via deleted files restoring tools, but it failed. So, there is no other way: you should issue another application.
Generally, the only advise that exists on keystores: "always back it up!"
直到今天,丢失密钥将导致无法使用新版本更新您的应用程序。在这种情况下,唯一的解决方案是发布一个新的应用程序,使用新的包名称和密钥,并要求所有用户安装它。
从今天开始,Play 管理中心中的应用签名密钥现在由 Google Play 安全管理,这意味着您只需负责管理您的上传密钥。如果您的上传密钥遭到泄露或丢失,Google 的开发者运营团队可以通过验证您的身份并重置上传密钥来提供帮助。 Google 仍将使用相同的应用签名密钥重新签名,从而允许应用照常更新。
对于现有应用,需要将您的应用签名密钥传输到 Google Play。 对于新应用,Google 可以生成您的应用签名密钥。注册应用程序签名后,您可以使用上传密钥对 APK 进行签名,Google 使用该密钥来验证您的身份。然后,他们将删除该签名并使用应用程序签名密钥重新签署您的应用程序。
参考: Play 管理中心帮助 >管理您的应用签名密钥
Until today, losing your key would make it impossible to update your app with a new version. In such cases, the only solution was to publish a new app, with a new package name and key, and ask all of your users to install it.
Starting from today, the app signing key in the Play Console is now securely managed by Google Play meaning that you are only responsible for managing your upload key. If your upload key is compromised or lost, Google's developer operations team can assist by verifying your identity and resetting your upload key. Google will still re-sign with the same app signing key, allowing the app to update as usual.
For existing apps, it requires transferring your app signing key to Google Play. For new apps, Google can generate your app signing key. Once enrolled in app signing, you sign your APK with an upload key, which Google uses to authenticate your identity. They'll then strip that signature and re-sign your app with the app signing key.
Reference: Play Console Help > Manage your app signing keys
在很长一段时间内都是可能的。
该密钥必须是 2048 位 RSA 密钥,并且有效期为 25 年。
然后上传此 pem 文件并填写表单并将其提交到 此网站。一旦我们注册了新的上传密钥,您将收到一封电子邮件。 仅接受来自 Play 管理中心帐号所有者的密钥重置请求。
一切都很好。您可以使用新的 jks 文件发布新版本的 apk。
It is possible for a long while.
This key must be a 2048 bit RSA key and have 25-year validity.
Then upload this pem file and fill the form and submit it to this site . And then you will receive an email once we've registered the new upload key . Only accepts key reset requests from the Play Console account owner.
All well and good. You can publish new release apk with your new jks file.