15

我正在尝试为 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 中导出我的应用程序时,它会要求输入密钥库和密码,并且我输入正确。

不知道为什么我不能签这个?我需要在发布模式下显示谷歌地图(在调试模式下工作)。

4

5 回答 5

24

当你只是做一个清单时,我认为你不必包括商店通行证。storepass 加密了做列表时不显示的私钥。试试这个:

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

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

您可能还想检查并确保您使用的是相同版本的 Java。我认为这不是问题,但如果上述方法无济于事,请尝试一下。

于 2010-11-24T02:27:30.973 回答
5

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

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

这打印了所有别名的 SHA1 密钥。

于 2015-06-11T00:22:21.170 回答
2

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

于 2012-06-15T07:59:25.177 回答
2

检查您的别名一次。有时您的别名与 keytool 别名不同,然后它会给出相同的错误。IE

于 2013-04-25T06:39:02.200 回答
0

keytool -list -keystore "Path of the keystore"

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

于 2017-05-28T07:03:19.947 回答