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