Keytool签名问题:密钥库被篡改,或密码不正确

时间:2010-11-24 01:40:19

标签: java android google-maps keystore keytool

我正在尝试为Google Maps API签署我的Android应用程序的发布版本(调试已签名正常):

keytool -list -alias cancertrials -keystore /Users/syalam/Documents/workspace/Cancer_Trials/keys/release -storepass android -keypass cancertrials

但我收到错误:

java.io.IOException: Keystore was tampered with, or password was incorrect

我很肯定密码是正确的,因为当我尝试在Eclipse中导出我的应用程序时,它会询问密钥库和密码,并且我正确输入密码。

不确定我为什么不签这个?我需要在发布模式下显示Google地图(在调试模式下工作)。

5 个答案:

答案 0 :(得分:24)

我不认为你只是在做一个列表时必须包含一个storepass。 storepass加密在执行列表时未显示的私钥。试试这个:

keytool -list -keystore /Users/salam/Documents/yada/yada

然后在出现提示时提供密钥库密码。如果可以,那么你可以在命令行上尝试使用keypass。

您可能还想检查并确保使用相同版本的Java。我不认为这是问题所在,但如果上述情况无法解决问题。

答案 1 :(得分:5)

不知何故在Windows上,keytool不接受密码。我只需要SHA1密码就可以在google dev控制台上的项目上配置客户端ID。以下似乎对我有用

keytool --list --keystore android.jks --protected

这打印了所有别名的SHA1键。

答案 2 :(得分:2)

当我切换回1.6.0_29 jarsigner工作正常时,我在jdk1.6.0.31上遇到与jarsigner相同的问题。请注意jdk版本。

答案 3 :(得分:2)

检查您的别名一次。有时你的别名与keytool别名不同,那么它会给出相同的错误。 即。

答案 4 :(得分:0)

keytool -list -keystore "Path of the keystore"

此命令将在linux台机器中要求输入密码,而在Windows机器中,您只需要输入列表密钥库。