答案 0 :(得分:9)
您可以在以下路径中找到丢失的密钥密码
Project\.gradle\2.14.1\taskArtifacts\taskArtifacts.bin
打开文件并使用您记住的部分密码进行搜索。你会发现它。否则,尝试使用此字符串“signingConfig.storePassword”进行搜索。
注意:我经历过同样的事情,我能够找到它。如果您没有找到可能是您清除了所有缓存和临时文件。
答案 1 :(得分:7)
您在更新apk时必须使用相同的证书,否则Google Play将无法将其识别为同一个应用。
如果您根本记不起密码,我认为除了开始使用新的应用程序(新包名称)之外别无选择。
来自Google文档
应用程序升级 - 在您发布应用程序更新时,如果希望用户能够无缝升级到新版本,则必须使用相同的证书或证书集继续对更新进行签名。当系统正在为应用程序安装更新时,它会将新版本中的证书与现有版本中的证书进行比较。如果证书完全匹配,包括证书数据和订单,则系统允许更新。如果在不使用匹配证书的情况下签署新版本,则还必须为应用程序分配不同的包名称 - 在这种情况下,用户将新版本安装为全新的应用程序。
来源:http://developer.android.com/tools/publishing/app-signing.html
Android开发者博客中的类似信息:http://android-developers.blogspot.com.au/2011/06/things-that-cannot-change.html
与清单包名称一样重要的是与应用程序签名的证书。签名证书代表应用程序的作者。如果您更改了应用程序已签名的证书,则它现在是另一个应用程序,因为它来自不同的作者。此不同的应用程序无法作为原始应用程序的更新上载到Market,也不能作为更新安装到设备上。
[...]
总结:您的应用程序的某些部分无法更改。请小心。
答案 2 :(得分:4)
如果您使用的是Gradle 4.0及更高版本,请尝试在此处查找密码。
答案 3 :(得分:2)
密钥库密码可能会被破坏,但您稍后仍需要别名密码。
从这里下载这两个文件
https://gist.github.com/zach-klippenstein/4631307
构建:
javac ChangePassword.java
执行命令
java ChangePassword <keystore filename> <new keystore filename>
答案 4 :(得分:1)
可以在.gradle文件夹下找到丢失的密钥密码,路径如下所示:
.gradle\3.3\taskArtifacts\taskArtifacts.bin
我认为3.3是gradle版本的编号,在某些情况下可能会更改。如果版本大于4.0,则路径实际上是不同的:
.gradle\4.1\taskHistory\taskHistory.bin
无论如何,这是二进制文件,因此它们充满了无法读取的数据,但是如果您搜索字符串“ signingConfig.storePassword”,您会发现很多文本,我的样子是:
<97>signingConfig.keyAlias^C<8a>MY_KEY_ALIAS<9c>signingConfig.storePassword^C<92>MY_STORE_PASSWORD<98>signingConfig.storeType^C<84>jks<9f>
答案 5 :(得分:0)