将Android App Bundle上传到Google Play控制台 - 密钥签名错误

问题描述 投票:0回答:5

我正在尝试将全新的.aab文件上传到Google Play控制台,但不断收到此错误:

上传失败 您上传了一个使用密钥签名的APK或Android App Bundle,该密钥也用于对发送给用户的APK进行签名。由于您已加入Google Play的应用签名,因此您应在上传之前使用新密钥在自己的APK或Android App Bundle上签名。

我完全难倒,因为我在生成应用程序包时为此应用程序包生成了一个新密钥,即通过Android Studio中的Build> Generate Signed Bundle / APK ...菜单项,所以它是一个全新的密钥,未被其他应用程序使用。 我甚至尝试使用新密钥创建一个全新的密钥库,但始终会得到相同的错误。这是其他人遇到的一些怪癖吗?

在Google Play上为此应用注册App Signing时,我选择了“让Google管理并保护您的应用签名密钥(推荐)”选项,并从我阅读的所有文档中选择用于签署该应用的密钥首先成为“上传密钥”,所以看起来我正在做所有事情,但没有骰子。

有没有人有任何建议或过去的经验?

android android-studio google-play-console
5个回答
1
投票

我有同样的问题,我解决了它删除我的应用程序并再次添加到播放控制台。


1
投票

尝试从控制台删除有关新应用程序的所有内容,然后开始生成新密钥并使用新密钥重建应用程序。然后你可以重新上传新的apk。


1
投票

“在Android Studio中通过Build> Generate Signed Bundle / APK ...菜单项,因此它是一个全新的密钥,未被其他应用程序使用。”

并不是的。 Android Studio使用的密钥库与Android SDK安装相关联,因此从Studio创建的所有应用都使用相同的密钥进行签名。

发生的事情是您必须创建另一个应用程序,使用该密钥库对其进行签名,然后将其上传到Play控制台,从而使其成为用于签署提供给最终用户的APK的密钥。与此同时,您创建了另一个您在Play Signing中注册的应用:对于此应用,上传证书是从您上传的第一个APK中提取的。由于您也使用Studio对APK进行了签名,因此使用了相同的密钥库。 Play检测到这两个应用程序的证书相同,并且由于您使用相同的密钥用于两个不同的目的(第一个应用程序的应用程序签名密钥,以及第二个应用程序的上传密钥),Play拒绝了它。原因是应用程序签名密钥比上传密钥重要得多(后者可以重置而第一个不能重置),因此不应将它们用于两个不同的目的。

换句话说,您需要创建一个不同的密钥库来签署在Play Signing中注册的应用程序(理想情况下,每个应用程序一个),并确保您永远不会将该密钥库用作另一个应用程序的应用程序签名密钥。


1
投票

好吧,经过大量的尖叫和呐喊,包括在聊天中接触谷歌播放控制台支持(他们只是一级支持,所以...没有多少帮助)和电子邮件(谁把我放在太难的篮子里说他们无法为应用程序开发提供支持 - 什么?问题是将应用程序上传到Play控制台,而不是app dev!),我发现这个自我回答的问题https://stackoverflow.com/a/54359729/845205

基本上,确保在与Android Studio登录有关时,您正在进行清洁和重建项目。出于某种原因,它认为我的新应用程序正在使用旧应用程序中的密钥并继续使用该密钥进行签名。 (我想解决方案毕竟是app开发支持!)


0
投票

另一种方法是,如果您在app build.gradle中设置了signedConfig。当您创建一个包时,您在签名部分中指定的内容似乎并不重要 - 即使您创建一个新的或选择其他一个密钥库 - 它将使用gradle文件中指定的那个。

© www.soinside.com 2019 - 2024. All rights reserved.