Android发布密钥库问题:“密钥库被篡改,或密码不正确”

时间:2012-02-16 10:51:21

标签: android jar-signing

几个月前,我用这个命令生成了我的android发布密钥库:

keytool -genkey -v -keystore my-release-key.keystore -alias myalias -keyalg RSA -keysize 2048 -validity 10000

我输入了密钥库的密码并将其写下来,在最后一步,是时候输入我输入的证书的密码输入使用与密钥库相同的密码(所以我只记得一个整个过程的密码。)

生成此密钥库后,我使用以下命令签署了我的apk版本:

jarsigner -verbose -keystore my-release-key.keystore my.apk myalias

我输入了密码(没问题)。

现在我必须在市场上推送更新到我的apk,当我尝试使用上面的命令签署新的apk时,我得到一个“密钥库被篡改,或密码不正确”。

我很困惑,我回到了我的密钥库备份,我遇到了同样的问题。我确定密码是正确的。请注意,我根本不使用Eclipse进行处理(我是从命令行进行签名)。

这可能是什么问题? Heeelppp !!

4 个答案:

答案 0 :(得分:3)

与社区分享我的经验......

JDK 1.7 build.gradle for android

android {
    compileSdkVersion 18
    buildToolsVersion "17.0.0"

    signingConfigs {
        release {
            storeFile file("../my-release.keystore")
            storePassword "$MakeMyDay!"
            keyAlias "my-release"
            keyPassword "$MakeMyDay!"
        }
    }
:

当我gradlew assembleRelease时,我得到了可怕的“篡改或密码错误”错误。

分辨率:

使用更简单的密码,例如abcdef。不确定是否有像$和!这样的特殊字符得到了支持。

答案 1 :(得分:2)

我发生了这个错误,因为我的公司名称中有一个逗号,例如" Company,Inc。" 删除了逗号,一切正常。 希望有所帮助。

答案 2 :(得分:0)

隐式keyalg,digestalg和/或sigalg在不同版本的Java之间发生了变化,并且可能发生了eclipse。

使用命令行并尝试几种不同的组合。在使用Java 5.0创建密钥但将系统升级到Java 6之后,这对我有用 jarsigner -verbose -keystore <.keystore> -sigalg MD5withRSA -digestalg SHA1 <apk file> <alias>

答案 3 :(得分:-4)

该消息表示密码错误。看起来您还没有记住您用于密钥库的密码。

强烈建议在创建密钥和密码时将副本保存在非常安全的地方,防止遗忘,火灾,驱动器故障等,因为后果可能非常严重(无法在市场中更新应用程序)。 / p>