几个月前,我用这个命令生成了我的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 !!
答案 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>