如何在android studio中检索签名APK的密钥别名和密钥密码(从Eclipse迁移)

MSI*_*lam 77 android signing apk android-studio

我有一个目前在Google Play上发布的Android应用,我会定期更新.我按照以下流程在新推送之前签署应用程序:

在项目上按鼠标右键,"Android工具" - >导出已签名的应用程序包提供密钥库密码签署您的应用程序将apk文件上传到Google Play开发者控制台

最近我将项目从Eclipse导入到Android Studio并继续在Android Studio上工作.现在我打算在应用程序中推送一个修复程序.我想我有这个选项在android studio中签名apk

构建 - >生成签名的apk - >在此输入图像描述

根据我的理解,对于我的Android应用程序,我必须使用我之前用于将更新推送到Google Play的相同密钥库和密钥库密码.此外,它还要求密钥别名和密钥密码.在Eclipse中签名apk时,我不记得密钥别名和密钥密码(图像中的数字4输入).有什么建议我现在能做什么?如果我已经知道我的密钥库和密钥库密码,有没有办法检索密钥别名和别名密钥密码?

更新:现在我可以通过keytool -list -v -keystore name.keystore命令检索我的密钥别名

小智 150

在Mac上,我在更新Android Studio之前在早期日志报告中找到了密钥库文件路径,密码,密钥别名和密钥密码.

我启动了Console实用程序并向下滚动到〜/ Library/Logs - > AndroidStudioBeta - > idea.log.1(或任何旧的日志编号)

然后我搜索了"android.injected.signing.store"并从较早的日期发现了这个:

-Pandroid.injected.signing.store.file=/Users/myuserid/AndroidStudioProjects/keystore/keystore.jks, 
-Pandroid.injected.signing.store.password=mystorepassword, 
-Pandroid.injected.signing.key.alias=myandroidkey, 
-Pandroid.injected.signing.key.password=mykeypassword,
Run Code Online (Sandbox Code Playgroud)

  • 你是个上帝.如果你在Windows上,那么转到`.AndroidStudioX.X(xx是版本号,例如1.5)> system> log> idea` (14认同)
  • 哇!你救了我的一天,我的月和我的一年!太棒了!:)但在我的情况下(Android 2.2),密码显示为:********.在Windows`C:\ Users\yourUser\.Android2.2\system\log\idea.log.1`上 (8认同)
  • 你救了我!:) (5认同)
  • @ Error404密码显示在第一个*****部分的下方.它在Android 2.2上与我合作 (5认同)
  • 不幸的是,它不适用于Windows和Android Studio 3.3。用********隐藏的密码 (4认同)
  • 你救了我的命! (2认同)

MSI*_*lam 110

我终于可以解决这个问题了.

获取密钥别名:我将keytool.exe和我的密钥库文件复制到C:\ Program Files\Java\jdk1.7.0_71\bin文件夹中.然后从命令提示符我写道:keytool -list -v -keystore <name>.keystore 它还会询问密钥库密码.然后它会显示关键别名和证书指纹和其他信息.

然后我再次尝试为项目生成签名Apk,我提供了密钥库,密钥库密码,密钥别名并提供了相同的密码.然后它要求主密码,我尝试了同样的,它失败了.使用重置选项,我在此处重置主密码.

  • 你能重新解释一下你答案的第二部分吗?!!你因“并提供了相同的密码”而失去了我 (3认同)
  • @MuhammedRefaat 密码与密钥库密码相同 (2认同)

Mar*_*ski 45

如何检索密钥库密码

您无法检索密码.如果你忘了它,你就注定了.

如何检索密钥别名

$ keytool -list -v -keystore <store>
Run Code Online (Sandbox Code Playgroud)

但是你首先需要密钥库密码.

编辑

我不记得的是'密码'

无法恢复密码.如果您忘记了密码密码,那么您也注定要失败,除了更加努力地回忆它之外别无他法.没有密码重置的东西,也没有类似的东西.

请注意,如果您忘记了密码,那么您将不再对您的应用程序发出更新(docs):

警告:将密钥库和私钥保存在安全可靠的位置,并确保对其进行安全备份.如果您将应用发布到Google Play,然后丢失了用于对应用进行签名的密钥,那么您将无法向应用发布任何更新,因为您必须始终使用相同的密钥对应用的所有版本进行签名.

  • 我记得密钥库密码.我也有密钥库,现在我记得Key Alias.我不记得的是"密码"(图中的数字4框). (2认同)

Luc*_*ana 21

在Windows中 - 只需在记事本中打开密钥库文件,在第一行 - 您可以看到用英文字母书写的别名.

  • 在Mac上,您可以使用TextEdit执行此操作 (3认同)

小智 16

根据gkemp的答案,在Windows上,我在更新Android Studio之前在早期的日志报告中找到了密钥库文件路径,密码,密钥别名和密钥密码.

从Windows文件浏览器c:/用户/您的电脑名称/ .AndroidStudio1.4(您的Android工作室版本)\ system\log\idea.log.1(或任何旧的日志编号)

然后我搜索了"android.injected.signing.store"并从较早的日期发现了这个:

-Pandroid.injected.signing.store.file= path to your keystore 
-Pandroid.injected.signing.store.password=yourstorepassword
-Pandroid.injected.signing.key.alias=yourkeyalias
-Pandroid.injected.signing.key.password=yourkeypassword
Run Code Online (Sandbox Code Playgroud)


Sob*_*had 15

不幸的是,上面提供的解决方案对初学者并不友好。

它是

keytool -list -v -keystore keystore_name.jks
Run Code Online (Sandbox Code Playgroud)


小智 13

在ubuntu中,我们可以从给定路径中找到与密钥库相关的所有密码.

/home/user/.AndroidStudio2.2(current version)/system/log/idea.log.x(older versions)
Run Code Online (Sandbox Code Playgroud)

编辑文件并搜索android.injected.signing.store,然后就可以找到密码了.

-Pandroid.injected.signing.store.file= path to your keystore 
-Pandroid.injected.signing.store.password=yourstorepassword
-Pandroid.injected.signing.key.alias=yourkeyalias
-Pandroid.injected.signing.key.password=yourkeypassword
Run Code Online (Sandbox Code Playgroud)

  • 是的,它也适用于Studio 2.3. (2认同)
  • 谢谢......工作了! (2认同)

tha*_*rem 12

要恢复KEY ALIAS.在终端上键入以下命令.

$ keytool -list -v -keystore <storekey>
Run Code Online (Sandbox Code Playgroud)

它将提供信息开始,

您的密钥库包含2个条目...

您可以在那里查找别名.


shy*_*yam 10

恢复您的密钥库密码

100%工作

Projects->taskHistory.bin

在此处输入图片说明

Find->KeyAlias

在此处输入图片说明

注意:单击并查看我的图像以供参考

现在,用于更新的android studio任务历史记录已更改为执行历史记录[!

  • 密码在新版本中已被散列,现在怎么办 (8认同)
  • 这在 6.x 中仍然有效吗?当我尝试它时,我发现的只是一个密码哈希。 (2认同)

Mah*_*aju 8

我在下面的路径中找到了我的密钥密码

Project\.gradle\2.14.1\taskArtifacts\taskArtifacts.bin 打开文件并使用您记住的密码部分进行搜索.你肯定会发现它.

此外,您可以参考此答案stackoverflow.com/a/43007357/7089151


小智 7

是的,您可以在Android Studio的任务工件中找到丢失的密钥。

Project\.gradle\2.14.1\taskArtifacts\taskArtifacts.bin
Run Code Online (Sandbox Code Playgroud)

对于更新版本的android studio,路径为:

Project\.gradle\5.1.1\executionHistory\executionHistory.bin
Run Code Online (Sandbox Code Playgroud)

打开文件,然后使用您记得的一部分密码进行搜索。

示例(将在该bin文件中): signingConfig.keyAlias?"key name"?signingConfig.keyPassword?"key password"?signingConfig.storePassword?"Store Password"?

您可以使用此字符串“ signingConfig.storePassword”或示例字符串中提供的任何字符串进行搜索

注意:我也经历过同样的事情,并且可以在上述路径中找到它。如果找不到,则清除所有缓存和临时文件。


Mar*_*ria 6

如果您碰巧在 MacOS 上并在 Android Studio 中选中了“保存密码”框,则可以从 Keychain Access 中恢复密码。

  1. 从应用程序/实用程序启动钥匙串访问。
  2. 在左侧面板的类别中选择密码。
  3. 在右上角的搜索框中,输入您的 Android 应用名称或应用名称的一部分。
  4. 如果您保存了密码,您将看到结果行。
  5. 双击它,选中显示密码复选框,在询问时提供您的系统密码,它将显示您的密钥库密码。


Var*_*run 5

如果在日志中查找无济于事,您还可以尝试暴力破解此密码-Android KeyStore密码恢复中的密码检查方法3 。

SO帖子还有更多答案。


Zer*_*roR 5

只需使用notepad ++打开密钥文件(.jks文件)。您将在第一行中获得别名...


小智 5

您可以按以下方式查找密钥库详细信息,而无需使用密码。

keytool -list -keystore <path>在命令提示符下执行命令()

您可以在我的机器的java文件夹中找到Keytool,可以从以下路径找到它

C:\Program Files (x86)\Java\jdk1.7.0_71\bin> keytool -list -keystore C:\<YourKeystore>.Keystore
Run Code Online (Sandbox Code Playgroud)

然后,它将要求您输入密码,在这里您不需要输入密码,而只需按向上箭头按钮并输入。然后将显示以下相同的详细信息和警告消息。

*****************警告警告警告*****************

  • 存储在密钥库中的信息的完整性*

  • 尚未验证!为了验证其完整性,*

  • 您必须提供密钥库密码。*

*****************警告警告警告*****************

密钥库类型:JKS密钥库提供者:SUN

您的密钥库包含1个条目

samplekey,2017年4月26日,PrivateKeyEntry,证书指纹(SHA1):XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX :XX:XX


小智 5

只需用记事本打开 yourApp.jks 文件,您就会在那里找到密钥库和别名!!


gsa*_*h91 5

单击 KeyAlias 您将了解别名

在此输入图像描述