使用密钥库和Android签署问题

时间:2013-03-07 11:18:12

标签: java android code-signing keystore android-keystore

所以我在市场上有一个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

1 个答案:

答案 0 :(得分:0)

在尝试了一些不同的事情后,我们最终使用新密钥库中的新密钥重新发布了应用程序。值得庆幸的是,它只出现了几个小时,并没有得到提升,只有大约10个用户受到影响。对于许多人来说仍然如此。

毕竟,我们已经开始设置Maven,并且只有在Maven服务器编译并签署应用程序之后才能完成所有发布。一切都备份,所有密码都记录下来等。