2012-12-24 49 views
4

我弄得一团糟:当我格式化我的电脑时,我丢失了我用来签署我的android应用的密钥。 Google抱怨应用程序更新必须使用相同的证书进行签名,但我不再拥有它了......是否有解决此问题的方法? 我可以访问较早签署的apks,我不能相信谷歌只依赖单个文件...从应用中检索密钥库或更改证书

回答

2

这是不可能的。密钥库包含一个证书,用于对您的apk进行数字签名。每个证书都是完全独特的,不能从旧版本中重新生成或恢复。

Google依赖于此,因为它非常安全,并且可以让他们真正减少某人破解开发人员帐户详情并上传恶意apk文件作为现有应用更新的可能性。

即使Google允许您上传使用不同密钥签名的apk作为更新,Android设备也不会允许用户更新应用,因为apk安装的签名与安装的签名不同。如果您从Google Play安装您的应用,然后尝试从Eclipse安装调试版本,则会遇到同样的问题。

现在,您必须使用不同的密钥重新上传不同包名下的应用。将来,请记住将密钥库备份到多个位置(但要安全地进行安装,不要意外将其提交到公共版本控制系统中,密钥库应始终保持私密状态)。

数字签名基于公钥密码学。您无法在给定公钥的情况下恢复私钥 - 这就是公钥密码的全部要点。这些算法基于单向函数:易于完成但难以逆转的事情。