所以我在市场上有一个Android应用程序,现在我需要更新它。我一直试图签署新的apk,但有困难。
我有密钥库,并使用keytool -list -v -keystore deployment.keystore
验证它包含正确的证书。密钥库没有密码,不记得这样做,但你去了。如果我输入任何内容,我会收到错误,如果我没有,那么它接受命令并列出包含的证书。
现在的问题是,当尝试在Eclipse中导出apk文件时,使用导出向导,我不允许在密钥库上没有密码,因此我无法获取内部的凭据。因此,我尝试运行以下命令以尝试更改密钥库keytool -storepasswd -keystore deployment.keystore
上的密码。我被要求输入密码,我不接受空字符串密码和我想设置的新密码。如果它< 6个字符长度我再次被提示,如果它>> 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。
现在我收到以下警告:
** * ** * * 警告警告警告 * ** * ** *
存储在srckeystore *中的信息的完整性 *尚未经过验证!为了验证其完整性,* *您必须提供srckeystore密码。
** * ** * * 警告警告警告 * ** * ** *
现在这会提示我输入空字符串srckeystore的密码。这是我似乎陷入的一些循环漏洞!
更新3:
我现在通过使用命令-storepass
成功更改了原始密钥库密码。但是现在我被提示输入密钥库中实际私钥/公钥对的keypass。我不记得设置这些,即使我读过they default to the keystore password if not set
他们也不接受我输入的任何内容。我的搜索仍在继续。
-MrDresden
答案 0 :(得分:0)
在尝试了一些不同的事情后,我们最终使用新密钥库中的新密钥重新发布了应用程序。值得庆幸的是,它只出现了几个小时,并没有得到提升,只有大约10个用户受到影响。对于许多人来说仍然如此。
毕竟,我们已经开始设置Maven,并且只有在Maven服务器编译并签署应用程序之后才能完成所有发布。一切都备份,所有密码都记录下来等。