我目前在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命令检索我的密钥别名
答案 0 :(得分:146)
在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,
答案 1 :(得分:95)
我终于可以解决这个问题了。
获取密钥别名:我将keytool.exe和我的密钥库文件复制到C:\ Program Files \ Java \ jdk1.7.0_71 \ bin文件夹中。然后从命令提示符我写道:keytool -list -v -keystore <name>.keystore
它还会询问密钥库密码。然后它会显示关键别名和证书指纹以及其他信息。
然后我再次尝试为项目生成签名Apk,我提供了密钥库,密钥库密码,密钥别名并提供了相同的密码。然后它要求主密码,我尝试了同样的,它失败了。使用重置选项,我在此重置主密码。
答案 2 :(得分:43)
如何检索密钥库密码
您无法检索密码。如果你忘了它,你就注定了。
如何检索关键别名
$ keytool -list -v -keystore <store>
但是你首先需要密钥库密码。
修改强>
我不记得的是'密码'
无法恢复密码。如果您忘记了密码密码,那么您也注定要失败,除了更加努力地回忆它之外别无他法。没有密码重置的东西,也没有类似的东西。
请注意,如果您忘记了密码,那么您将不再对您的应用发布更新(docs):
警告:确保您的密钥库和私钥安全可靠 放置,并确保您有安全的备份。如果您发布 Google Play的应用,然后丢失您签名的密钥 应用程序,您将无法发布任何更新到您的应用程序,因为 您必须始终使用相同的密钥对应用的所有版本进行签名。
答案 3 :(得分:16)
在Windows中 - 只需在记事本中打开密钥库文件,在第一行 - 您可以看到用英文字母书写的别名。
答案 4 :(得分:15)
根据gkemp的回答,在Windows上,我在更新Android Studio之前在早期的日志报告中找到了密钥库文件路径,密码,密钥别名和密钥密码。
来自windows文件资源管理器c:/ Users /你的电脑名称/ .AndroidStudio1.4(你的android工作室版本)\ system \ log \ idea.log.1(或任何旧的日志编号)
然后我搜索了“android.injected.signing.store”并从较早的日期发现了这个:
<?php
require('smtp.function');
SMTP('to@domain.com',' This is a test of the SMTP class by Alex','<strong>This test</strong> is <a href="http://www.google.co.uk">HTML CODE</a>');
?>
答案 5 :(得分:12)
在ubuntu中,我们可以从给定路径中找到与密钥库相关的所有密码。
/home/user/.AndroidStudio2.2(current version)/system/log/idea.log.x(older versions)
编辑文件并搜索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
答案 6 :(得分:7)
答案 7 :(得分:7)
只需恢复KEY ALIAS。在终端上键入以下命令。
$ keytool -list -v -keystore <storekey>
它将提供信息开始,
您的密钥库包含2个条目......
您可以在那里查找别名。
答案 8 :(得分:6)
我在下面的路径中找到了我的密钥密码
Project\.gradle\2.14.1\taskArtifacts\taskArtifacts.bin
打开文件并使用您记住的密码部分进行搜索。你肯定会找到它。
此外,您可以参考此答案stackoverflow.com/a/43007357/7089151
答案 9 :(得分:6)
不幸的是,以上提供的解决方案并不适合初学者。
是
keytool -list -v -keystore keystore_name.jks
答案 10 :(得分:4)
如果查看日志没有帮助,您还可以尝试强制使用密码 - 请检查此帖子上的方法3 - Android KeyStore Password Recover。
此SO post也有更多答案。
答案 11 :(得分:4)
用记事本++打开密钥文件(.jks文件)。你会在第一行获得别名......
答案 12 :(得分:3)
是的,您可以在Android Studio的任务工件中找到丢失的密钥。
Project\.gradle\2.14.1\taskArtifacts\taskArtifacts.bin
打开文件并使用您记住的部分密码进行搜索。
如果没有,请使用此字符串“signingConfig.storePassword”
进行搜索注意:我遇到了同样的事情,我可以在上面的路径中找到它。如果您没有找到,可能会清除所有缓存和临时文件。
答案 13 :(得分:2)
您可以按照以下方式查找密钥库详细信息,而无需使用密码。
在命令提示符
中执行命令(keytool -list -keystore <path>
)
你可以在我的机器的java文件夹中找到Keytool,我可以找到以下路径
C:\Program Files (x86)\Java\jdk1.7.0_71\bin> keytool -list -keystore C:\<YourKeystore>.Keystore
然后它会要求您输入密码,在这里您无需输入密码而不是按下向上箭头按钮并输入密码。然后将显示相同的详细信息,并显示警告消息,如下所示。
*************警告警告警告*****************
存储在密钥库中的信息的完整性*
尚未经过验证!为了验证其完整性,*
您必须提供密钥库密码。 *
*************警告警告警告*****************
密钥库类型: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
答案 14 :(得分:1)
使用记事本打开yourApp.jks文件即可找到Keystore&amp;别名在那里!!
答案 15 :(得分:1)
如果您刚好在MacOS上并选中了Android Studio中的“保存密码”框,则可以从“钥匙串访问”中恢复密码。
答案 16 :(得分:1)
答案 17 :(得分:1)
不要在所有这些解决方案上浪费时间,它们不再起作用,谷歌设法修复了所有这些泄漏并加密了所有提到的文件的密码。只需联系 google support,创建一个新的 Keystore 文件并将其发送给他们,他们将为您的应用更新它。
答案 18 :(得分:1)
有一种方法可以重置密码。
转到此链接,描述您的问题(忘记 KeyStore 密码)并生成令牌。 https://support.google.com/googleplay/android-developer/contact/otherbugs
如果幸运的话,您将在 1 小时内获得重播。 (一般最多需要 2 天)。
您需要生成一个新密钥和upload_certificate.pem,然后将其发送给谷歌进行重置。您将在邮件中收到说明。
要生成upload_certificate.pem,请转到 android studio 终端并输入:
keytool -export -rfc -alias upload -file upload_certificate.pem -keystore keystore.jks
答案 19 :(得分:0)
您可能想尝试使用此密码破解程序。
http://maxcamillo.github.io/android-keystore-password-recover/index.html
我正在使用字典攻击方法。它对我有用,因为我能想到的密码只有几个组合。
答案 20 :(得分:0)
Android Studio 3.0以下工作方法:
找到您的旧压缩项目。
如果您已经构建了apk,则会在文件中找到密码:
Project\.gradle\2.14.1\taskArtifacts\taskArtifacts.bin
Pandroid.injected.signing.store.password =密码
如果您没有压缩项目,请查看您的git存储库,无论是否已推送.gradle文件夹。
否则,您将必须通过“ Pandroid.injected.signing.store.password”内容恢复文件并搜索文件。
答案 21 :(得分:0)
无论如何,您都对密码感到困惑。您可以使用点击和试用。 它将要求您输入密码。如果正确,则会显示列表。
$ keytool -list -v -keystore文件名
答案 22 :(得分:0)