首页 > 解决方案 > 从 IntelliJ 迁移到 Android Studio 后无法签署 APK(或密码问题?)

问题描述

在试用了 IntelliJ 的 Android 插件几个月后,我最近切换回了 Android Studio。然后我尝试签署一个应用程序的 APK,该应用程序目前在 Play 商店中进行 beta 测试,但签名与 Dev Play 控制台上以前版本的签名不匹配。我仔细检查了一下,我确定我使用的是与以前相同的密钥库(和相同的密钥)。

现在我有两种可能性:

• 将 IntelliJ 迁移到 Android 时出现代码签名问题?

• 我的密钥库密码错误。但是,为什么它会成功构建 APK?

我可以排除这两个方向中的任何一个吗?

它在 Google 帮助中写道,如果密钥库丢失(不是这种情况,但可能是密码),需要在 Play 商店中使用新的包名称重新创建一个全新的应用程序。

真的没有别的办法了吗?

PS:我过去下载了一些用于apk签名的证书,但我不知道如何在Android Studio中使用它们而不是jks文件。

编辑

我从商店收到的错误消息是:

 You uploaded an APK that is not signed with the upload certificate. 
 You must use the same certificate. The upload certificate has fingerprint:

 [ SHA1: XXX ]
 and the certificate used to sign the APK you uploaded have 
 fingerprint:
 [ SHA1: YYY ]

然而,当我运行以下命令时:

 keytool -list -v -keystore "/Path/upload_keystore.jks" 
 -alias "upload_key" -storepass ***** -keypass ****

我知道 SHA1 实际上是XXX(而不是YYY)。所以应该是对的。另外,奇怪的事情是:无论我使用什么密码,我都会得到相同的 SHA1,而且它是正确的!

但我也收到以下消息:

Warning:
The JKS keystore uses a proprietary format. It is recommended to 
migrate to PKCS12 which is an industry standard format using "keytool 
-importkeystore -srckeystore /Path/upload_keystore.jks - 
 destkeystore /Path/upload_keystore.jks -deststoretype pkcs12".

这很奇怪,因为它是由 Google 生成的。

标签: android-studiointellij-ideaapk

解决方案


好的,我刚刚做了一个干净的构建,然后再次签名,它工作了。我猜第一次签名尝试是错误的,但它被缓存并阻止了其他签名尝试真正有效。


推荐阅读