我正在尝试为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地图(在调试模式下工作)。
答案 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机器中,您只需要输入列表密钥库。