【问题标题】: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您的 Android App Bundle 使用错误的密钥进行签名。确保您的 app bundle 使用正确的签名密钥进行签名,然后重试
【发布时间】:2019-03-01 14:35:03
【问题描述】:

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

【问题讨论】:

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

标签: android google-play


【解决方案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 文件存在一些问题。

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

  1. 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
                  }
              }
          }
      }
      
  2. 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 生成新密钥....阅读一些随机的 stackoverflow,它被写入其中以重建项目并尝试再次上传.. IT工作!

【讨论】:

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

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

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

  1. 我们丢失了用于签署应用程序的上传密钥(初始密钥库文件,可能是 .jks)。
  2. 我们创建了一个新的密钥库文件并将创建的证书导出为 PEM 格式,如 here in the docs 所述。我们向 Google Play 团队发送了重置密钥的请求,并附有 .pem 文件。
  3. 当 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 中:

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

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

      【讨论】:

        【解决方案8】:

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

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

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

        2. 将其连接到您的项目。

        【讨论】:

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

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

        希望对你有帮助。

        【讨论】:

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

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

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

        2. 选择 Build > Generate Signed Bundle/APK

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

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

        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 来构建我的应用程序包。就我而言,我必须:

              1. 手动创建新的密钥库文件。
                或者使用命令expo fetch:android:keystore 下载您现有的密钥库
              2. 从 Google Play 控制台下载我的应用的上传证书
              3. 将应用程序的上传证书导入到新创建的密钥库文件中,为其提供密钥别名和密码。这很容易使用 java keytool 完成。在 MacOS 中是在路径中,因此请发出 keytool -h 以查看可用的各种命令。
              4. 运行 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

                        【讨论】:

                          猜你喜欢
                          • 2020-10-02
                          • 1970-01-01
                          • 2021-04-15
                          • 1970-01-01
                          • 1970-01-01
                          • 2023-01-17
                          • 1970-01-01
                          • 1970-01-01
                          • 2019-07-09
                          相关资源
                          最近更新 更多