【问题标题】:I have forgotten my keystore password and I want to install my apk on Google Play. What do I do?我忘记了我的密钥库密码,我想在 Google Play 上安装我的 apk。我该怎么办?
【发布时间】:2013-11-09 03:08:09
【问题描述】:

我已经提交了一个申请,并在一个月前签署了它的 apk。现在我忘记了它的密码,当我为此使用新密钥并在 Google Play 上安装它时,它给了我指纹错误。我能做什么?

application link 在这里。

发生错误:

【问题讨论】:

  • 你可以开始用头撞砖墙了
  • 唯一的选择是找回您的密码...或将您的应用发布为新应用(更改包名称)...故事结束
  • 先生..,但是该应用程序有 500 多个安装程序..,如果我重新发布它..那么旧的部分将被删除 ...,;;;(
  • 您必须创建一个具有不同包名的新 APK。我也面临同样的问题。甚至谷歌也无法提供帮助。
  • 我遇到了同样的问题,很遗憾您对此无能为力。 ://

标签: android google-play apk


【解决方案1】:

您可以在下面的路径中找到丢失的密钥密码

Project\.gradle\2.14.1\taskArtifacts\taskArtifacts.bin

打开文件并使用您记得的部分密码进行搜索。你一定会找到的。否则,请尝试使用此字符串“signingConfig.storePassword”进行搜索。

注意:我也有同样的经历,我能找到它。如果您没有找到,您可能会清除所有缓存和临时文件。

【讨论】:

  • @Maharshi Adiraju 你真是个天才,你节省了我很多时间,非常感谢你的帮助。我太欣赏你的表现了。但是在我的 system3.3 文件夹中有一个 taskArtifacts.bin 文件。
  • 真的为我工作。只是您必须在字符串“signingConfig.storePassword”附近寻找密钥,而我最终偶然发现了它。谢谢!!
  • 真棒的把戏人......在搜索了3-4个多小时后终于得到了它。保存了我的应用程序。谢谢
  • 你们知道如何找到密钥密码吗?我有 storePassword 但没有 KeyPassword。
  • 太棒了,我在同样的问题上苦苦挣扎,终于从你的诡计中得到了密码。谢谢人
【解决方案2】:

如果您使用的是 Gradle 4.0 及更高版本,请尝试在此处查找您的密码。

  1. 切换到项目模式
  2. 打开您的项目名称文件夹。
  3. 打开 .gradle 文件夹。
  4. 打开 gradle version 文件夹(我这里是 4.4)。
  5. 打开 taskHistory 文件夹。
  6. 双击“taskHistory.bin”,选择在文本编辑器中打开选项。
  7. ctrl+f 打开搜索框并尝试找到您的密钥(猜测)。

更新:
gradle 5.4 版本中,文件路径已更改如下:<project>\.gradle\5.4\executionHistory\executionHistory.bin

【讨论】:

  • 天才!工作完美。对于需要此文件的任何其他人,截至 2019 年 12 月 16 日的文件名称称为“executionHistory.bin”一旦进入此文件,只需搜索“storePassword”
  • 我尝试并找到了我认为的密码,但是当我尝试使用它们时,我仍然收到密码验证失败错误
  • 天才,感谢您减轻我的压力
【解决方案3】:

更新您的 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,也不能作为更新安装到设备上。

[...]

结论:您的应用程序的某些部分无法更改。请小心。

【讨论】:

【解决方案4】:

密钥库密码可以被破解,但您稍后仍需要别名密码。

从这里下载这两个文件

https://gist.github.com/zach-klippenstein/4631307

构建:

javac ChangePassword.java

运行:

java ChangePassword <keystore filename> <new keystore filename>

【讨论】:

  • 比赛赞赏!
【解决方案5】:

丢失的key密码可以在.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>

【讨论】:

    【解决方案6】:
    1. 切换到项目模式。
    2. 打开您的项目名称文件夹。
    3. 打开 .gradle 文件夹。
    4. 打开 gradle 版本文件夹(这里是 5.4.1)。
    5. 打开 executionHistory 文件夹。
    6. 双击“executionHistory.bin”,选择在文本编辑器中打开 选项。
    7. 按 ctrl+f 打开搜索框并尝试查找您的密钥 (写商店密码)。

    【讨论】:

    • 它的散列,知道吗?
    猜你喜欢
    • 1970-01-01
    • 2016-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-03
    • 2017-06-28
    • 2012-12-19
    • 2012-06-06
    相关资源
    最近更新 更多