您的 Android App Bundle 使用错误的密钥进行签名。确保您的 app bundle 使用正确的签名密钥进行签名,然后重试

Posted

技术标签:

【中文标题】您的 Android App Bundle 使用错误的密钥进行签名。确保您的 app bundle 使用正确的签名密钥进行签名,然后重试【英文标题】:Your Android App Bundle is signed with the wrong key. Ensure that your app bundle is signed with the correct signing key and try again 【发布时间】:2019-03-01 14:35:03 【问题描述】:

如何使用正确的签名密钥签署我的 android app bundle?

【问题讨论】:

您能否在 Play 管理中心重置您的密钥?我遇到了同样的问题,支持人员没有回复我从他们那里重置密钥的请求。 @rraallvv 目前在你的位置 - 他们没有回来。只是需要一点时间吗? @HamishJohnson 他们最终确实重置了我的帐户,尽管我不记得确切解决问题所花费的时间。抱歉,我不能提供更多帮助。 【参考方案1】:

错误提示您之前已上传 APK 或 App Bundle。您上传到 Play 管理中心的所有工件都应使用相同的密钥库进行签名。 因此,该错误意味着您使用与您之前上传的密钥不同的密钥签署了 App Bundle。您必须找到之前使用的密钥库,或者联系 Play 管理中心支持团队重置密钥。

【讨论】:

对不起,我得到了与主题相同的错误。重置密钥后我无法继续:总是相同的错误。你能帮我(也有私信)上传一个新的应用程序包吗?我丢失了原来的 jks,我无法使用新的 SHA1 密钥签署 app bundle! 重置密钥时,您必须在该密钥库中创建一个新密钥库和一个新密钥。然后,您将与该密钥关联的证书发送给 Google。这是您需要用来签署应用程序的密钥。 啊好的,所以我将与新的 .jks 密钥库关联的新 .pem 文件发送给 google。在他们回复后,我可以使用那个新的 .jks .. 完美!非常感谢 2021 年最有用的答案【参考方案2】:

我尝试在此处和 this question 中使用多个答案,但不知何故,我收到了此错误,因为我的 android/app/build.gradleandroid/gradle.properties 文件存在一些问题。

您应该检查的两件事(除了这里的其他解决方案)是:

    android/gradle.propertiesandroid/app/build.gradle 中,确保您的keystore 变量完全匹配。 在android/gradle.properties,你可能有这样的东西:
    MYAPP_RELEASE_STORE_FILE=<>
    MYAPP_RELEASE_KEY_ALIAS=<>
    MYAPP_RELEASE_STORE_PASSWORD=<>
    MYAPP_RELEASE_KEY_PASSWORD=<>
    
    确保这些变量名称完全android/app/build.gradle 中的名称匹配:
    android 
        ...
        signingConfigs 
            release 
                if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) 
                    storeFile file(MYAPP_RELEASE_STORE_FILE)
                    storePassword MYAPP_RELEASE_STORE_PASSWORD
                    keyAlias MYAPP_RELEASE_KEY_ALIAS
                    keyPassword MYAPP_RELEASE_KEY_PASSWORD
                
            
        
    
    
    android/app/build.gradle 中,确保在release buildTypes 中将signingConfig 设置为signingConfigs.release
    android 
        ...
        buildTypes 
            debug ...
            release 
                signingConfig signingConfigs.release
            
        
    
    

【讨论】:

非常感谢,在我将 React Native 应用程序移动到另一个样板项目以获得更好的目录结构后,这对我有所帮助,但未能使用旧的 Keystore 文件部署新的应用程序版本。 在构建应用之前运行./gradlew clean有助于清除以前缓存的构建。 非常感谢。我不知道发生了什么事。我的signingConfig 指向signingConfigs.debug。将其更改为发布后它起作用了。 啊,非常感谢!!我在 reactnative.dev/docs/signed-apk-android 遵循反应本机指令。 buildTypes下的改动真的很容易错过 这对我有用。我在这个问题上花了几个小时。【参考方案3】:

我为此在桌子上敲了大约两个小时。当我最终放弃并填写“重置密钥”请求时,我意识到我一直在尝试将其上传到错误的项目

所以,第一步:确认您正在尝试上传到正确的项目。

【讨论】:

我很高兴我读到了这条评论,因为事实上,这是我的错误导致我在谷歌上搜索到的。仔细检查自己总是很聪明,嗯? 这让我松了一口气,我不是唯一一个愚蠢的人。 这也是我的错误! 但是 Google 怎么知道“正确的项目”是什么?我是否需要在 Play Console 上填写一些内容,专门告诉它要上传我机器上的哪个项目?那是哪里? @interstar 在 Play 管理中心的左侧导航栏中,转到设置 > 应用完整性。密钥必须与那里的设置相匹配。有关设置的信息,请查看support.google.com/googleplay/android-developer/answer/…【参考方案4】:

只需重建项目并再次生成签名的 apk 并尝试!

在这上面浪费了我 2 天的时间,有我的密钥库密钥,但仍然显示错误并请求 google 生成新密钥....阅读一些随机的 ***,它被写入其中以重建项目并尝试再次上传.. IT工作!

【讨论】:

如何重建项目?任何建议请 @rjtubera 在 Android Studio 中,只需转到 Build -> Rebuild Project(我建议在重建之前先进行 Build -> Clean Project)【参考方案5】:

如果您从 Google Play 请求了一个新的上传密钥,但仍然收到此错误(应该适用于原生 Android 和 Flutter)。

我也遇到过同样的问题。以下是如何解决它的步骤:

    我们丢失了用于签署应用程序的上传密钥(初始密钥库文件,可能是 .jks)。 我们创建了一个新的密钥库文件并将创建的证书导出为 PEM 格式,如 here in the docs 所述。我们向 Google Play 团队发送了重置密钥的请求,并附有 .pem 文件。 当 Google Play 团队重置密钥时,我们尝试使用在第 2 步中创建的新 .jks 密钥库,但又出现了一次错误。

解决方案是清理您的项目,从头开始重新构建它以重置所有缓存的构建。

在 Flutter 的情况下(我们在使用 Flutter 构建应用时遇到此错误)。确保你使用

flutter clean

在模拟器或设备上构建应用程序。

然后运行:

flutter build appbundle --release

在我们的案例中就是这样解决的。

PS。这也应该对原生 Android 有所帮助。

【讨论】:

【参考方案6】:

在这个问题上浪费了几个小时之后,下面的解决方案对我有用 -

当您创建签名包时,它会保存到某个位置, 然后当它被拒绝时, 你又去制作新的签名包, 嗯,这就是错误发生的地方。

请参阅现在您将创建另一个已签名的捆绑包, 你在另一个文件夹上签名假设上一个是上次制作的, ,请确保将签名密钥存储在 "SAME FOLDER" 中, 无需创建任何新的签名密钥路径, 只需使用您第一次使用时使用的路径即可。

See this image, use the same path which you have used during first time

使用与第一次相同的 JKS 文件。 现在,当您制作捆绑文件时, 它将拥有正确的密钥。

谢谢!!!

【讨论】:

【参考方案7】:

在这里反应原生!

我在尝试从 ./gradlew bundleRelease 命令上传生成的 .aab 文件后收到此错误。我通过再次使用 Android Studio 导出 .aab 文件来修复它。我相信这是将您的第一个 .aab 文件上传到 Google Play 的方式。如果你不知道怎么做:

在 Android Studio 中:

    打开 React Native 的项目 android 文件夹 转到构建 -> 生成签名包/APK 选择 Android 应用程序包 输入您的密钥存储详细信息(如果这是您第一次这样做,您必须选中导出加密密钥复选框,​​您可以将其用于 Google Play 应用签名),然后点击下一步 Android Studio 完成后,您可以选择查找创建的文件

现在,如果您上传这个 .aab 文件,它应该会被接受。

【讨论】:

【参考方案8】:

迟到的答案(对于任何可能仍在为这个话题苦苦挣扎的人)-

您可能忘记了该项目的 .jks 文件。

    在文件资源管理器中搜索 .jks 文件。

    将其连接到您的项目。

【讨论】:

你是个传奇人物。谢谢 @Nilesh Deshmukh 如何将不同的 .jks 文件连接到您的项目?【参考方案9】:

我意识到,当我上传 apk 时,它会给出更详细的错误。所以也许可以尝试解决错误,然后尝试应用程序包。

希望对你有帮助。

【讨论】:

是的,它有帮助。如果您尝试上传 APK 而不是 .aab,那么它会给您详细的错误。【参考方案10】:

对于那些在没有手动生成 keystore 的情况下发布 apk 并在尝试从其他机器发布 apk 或捆绑包时遇到此问题的用户,请按照以下步骤操作:

    从用于构建应用程序第一个版本的机器复制 debug.keystore (C:\Users\username\.android\debug.keystore)

    选择 Build > Generate Signed Bundle/APK

    提供 debug.keystore 文件的密钥存储路径

    用下面提到的默认值填充其他字段并构建

Keystore name: "debug.keystore"
Keystore password: "android"
Key alias: "androiddebugkey"
Key password: "android"
CN: "CN=Android Debug,O=Android,C=US"

【讨论】:

【参考方案11】:

确保您使用正确的 JKS 进行应用签名。

常见的开发人员错误,具有多种风格的 Android 应用程序使用不同的 JKS 文件签名包。

【讨论】:

【参考方案12】:

我所做的是从 git 中排除我的 android 文件,然后当我更改分支并重建时,我的 build.gradle 文件被覆盖。

【讨论】:

【参考方案13】:

我正在使用expo 来构建我的应用程序包。就我而言,我必须:

    手动创建新的密钥库文件。 或者使用命令expo fetch:android:keystore 下载您现有的密钥库 从 Google Play 控制台下载我的应用的上传证书 将应用程序的上传证书导入到新创建的密钥库文件中,为其提供密钥别名和密码。这很容易使用 java keytool 完成。在 MacOS 中是在路径中,因此请发出 keytool -h 以查看可用的各种命令。 运行 expo ba -c ,采用手动路线,当被问到时,我指定了我在步骤 1 中创建的密钥库文件。

【讨论】:

【参考方案14】:

我在构建签名的 Android App Bundle 时遇到了同样的错误。 为了在本地机器上进行调试,我在发布版本类型中启用了debuggable。 看来,Playstore 识别出一个调试版本,并简单地说它不是一个有效的 Bundle。

build.gradle:

buildTypes 
     release 
         minifyEnabled true
         proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
         //debuggable = true  <----- Works like expected when disabled
     

【讨论】:

【参考方案15】:

这对我有用!


第一次上传 apk/bundle 到 Play 商店时,您可能会生成 private_key.pepk 那么您的密钥也可能会被更改。因此,如果您选择了默认密钥别名 key0,请确保您选择了正确的别名,然后才继续。如果该步骤正确,那么您的捆绑包将成功上传。


【讨论】:

【参考方案16】:

我遇到了同样的错误: enter image description here

就我而言,我改变了:

android 
compileSdkVersion 30

android 
compileSdkVersion 31

targetSdkVersion 30

targetSdkVersion 31

它奏效了。希望它对你有用。

【讨论】:

【参考方案17】:

在 google play 控制台中,我通过转到 aab archive 选项卡解决了这个问题,并删除了那里的所有现有版本。然后我回到production 并选择change key for app signing。在此之后,我可以成功上传我的 aab 文件。

【讨论】:

【参考方案18】:

如果您将应用程序发布到 Playstore 并发现错误 Your Android App Bundle is signed with the wrong key. Ensure that your app bundle is signed with the correct signing key and try again: 然后, 如果您在达到图片中显示的当前状态之前尚未生成/更改应用程序包或重建/清理项目,那么请确保在游戏控制台上创建新的应用程序项目,因为游戏控制台可能会混合这两个键。 image

【讨论】:

以上是关于您的 Android App Bundle 使用错误的密钥进行签名。确保您的 app bundle 使用正确的签名密钥进行签名,然后重试的主要内容,如果未能解决你的问题,请参考以下文章

您的 Android App Bundle 使用错误的密钥签名

将 android app bundle 上传到 playstore 时出错。。您的 app bundle 的目标是无法识别的语言 jp

您需要为您的 APK 或 Android App Bundle 使用不同的版本代码

您的 Android App Bundle 使用错误的密钥进行签名。 (首次在 google play store 上传应用时)

无法从您的 Ionic 应用生成 Android App Bundle(没有 Android Studio)

第一次尝试将应用上传到 Google Play 时出现错误“您的 Android App Bundle 使用错误的密钥签名。”