【发布时间】:2014-02-15 00:42:14
【问题描述】:
所以我在市场上有一个 Android 应用程序,现在我需要更新它。我一直在尝试签署新的 apk,但遇到了困难。
我有密钥库,并已使用keytool -list -v -keystore deployment.keystore 验证它包含正确的证书。密钥库没有密码,不记得这样做了,但你去了。如果我输入任何内容,我会得到一个错误,如果我没有,那么它会接受命令并列出包含的证书。
现在的问题是,当尝试在 Eclipse 中导出 apk 文件时,使用导出向导,我不允许在密钥库上没有密码,因此我无法获取里面的凭据。所以我尝试运行以下命令来尝试更改密钥库keytool -storepasswd -keystore deployment.keystore 上的密码。我被要求输入密码,空字符串密码和我要设置的新密码都不被接受。如果它的长度 6 个字符,我会收到以下错误:keytool error: java.io.IOException: Keystore was tampered with, or password was incorrect。
现在我不知道该怎么办,并寻求 SO 的集体知识来帮助我。
更新:我现在已导出证书,然后将其再次成功导入新的密钥库。现在的问题是,当我尝试签名时,我在 Eclipse 中得到了 Unhandled event loop exception。有什么想法吗?
更新 2: 尝试通过终端进行签名以避免 Eclipse 抛出的异常带来了新问题。我正在尝试以下操作:jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore new.keystore myApp.apk myAlias。我的新密钥库中只有证书,但没有私钥,所以我一直在尝试通过运行keytool -importkeystore -srckeystore deployment.keystore -destkeystore myKeystore.p12 -deststoretype PKCS12 将它们作为 p12 从旧密钥库导出。
现在我收到以下警告:
******* 警告 警告 警告 * em>******
存储在 srckeystore 中的信息的完整性* * 未经验证!为了验证其完整性,* * 您必须提供 srckeystore 密码。
******* 警告 警告 警告 * em>******
现在提示我输入 srckeystore 的密码,该密码是空字符串。这似乎是我陷入的一个循环漏洞!
更新 3:
我现在已经通过输入命令-storepass 成功更改了原始密钥库密码。但是,现在提示我输入密钥库中实际私钥/公钥对的密钥传递。我不记得设置这些,即使我读过they default to the keystore password if not set 他们不接受我输入的任何内容。我的搜索还在继续。
-德累斯顿先生
【问题讨论】:
-
您是否尝试从控制台运行导出?也许在控制台中你可以有空白密码......否则该死的:)
-
好吧,我一发布问题就想出了导出选项,所以它起作用了。我现在创建了一个带有密码的新密钥库,并将证书导入其中。但是现在我正在尝试使用证书签名,我在 Eclipse 中得到“未处理的事件循环异常”......确实该死。下雨就倾盆大雨!
-
您是否使用新的密钥库从控制台尝试过 - 也许这是一个 Eclipse 问题?还可以尝试在您的 Eclipse 中更新 Android 插件 - 也许有可用的新版本?否则...该死的;-)
-
尝试在控制台中执行此操作,但这会带来其他问题。在问题中列出它们。我肯定没有过最好的日子>.
标签: java android code-signing keystore android-keystore