当我使用
keytool -list -keystore /path/to/keyfile.jks
并提供我的密码时,我可以看到那里的条目,但是当我在尝试使用相同的密码生成签名的 APK 时使用相同的密码时,我得到了错误
无法加载密钥库:密钥库被篡改或密码不正确
请帮忙!
经过20个小时的不懈搜索,得到了答案。显然,这里提到的密码中的字符“&”存在一些问题https://code.google.com/p/android/issues/detail?id=36350 虽然在我的情况下,字符是“@”。
对于任何被卡住的人,这就是我所做的(以及应该为他们工作的)
keytool -keypasswd -alias <key_name> -keystore mykeystorek.jks
命令更改我的密钥别名密码的密码。keytool -importkeystore -srckeystore my.keystore.jks -destkeystore new.keystore -deststoretype pkcs12
后跟keytool -importkeystore -srckeystore new.keystore -srcstoretype pkcs12 -destkeystore final.keystore -deststoretype jks
.这样做的目的是以 PKCS12 格式导出原始密钥库值,然后以文件名 final.keystore 回到 Java 密钥库格式。在所有这些命令中,提示要求输入新的目标密码,这是我精心选择的,避免使用@
和&
.
它现在有效!如上面共享的链接所示,这似乎是由于 SDK Tools 20 中推送了一些更新。我知道这很糟糕。其他应用程序所有者似乎也对 Google 很生气。:(
无论我尝试什么,我都无法让 Android Studio 签署我的 APK。
即使我尝试创建一个新的密钥库和密钥并在 Android Studio 构建版本期间使用它来签署它,我也收到了这个错误。
最后,我通过使用密钥库资源管理器将密钥库和我正在使用的签名密钥的密码重新设置为“changeit”来使其工作。
这让我感到既不安又困惑。这不可能发生,但它确实发生了。
我有一个类似的问题,它源于损坏的 my-upload-key 文件。为了解决问题,我从 app 和 android 目录中删除了它,然后按照此链接https://reactnative.dev/docs/signed-apk-android再次创建它。运行 gradlew buildRelease 命令是成功的。