如何修复 Google Api 错误:禁止:将应用程序上传到 Play 商店时,Android App Bundle 使用错误的密钥签名

Posted

技术标签:

【中文标题】如何修复 Google Api 错误:禁止:将应用程序上传到 Play 商店时,Android App Bundle 使用错误的密钥签名【英文标题】:how to fix Google Api Error: forbidden: The Android App Bundle was signed with the wrong key when upload app to play store 【发布时间】:2020-10-06 11:06:29 【问题描述】:

我尝试使用keytool -genkey -v -keystore debug.keystore -storepass android -alias androiddebugkey -keypass android -keyalg RSA -keysize 2048 -validity 10000 生成新密钥。将其复制到android/app/~/.android/。它一直在抱怨。当我运行./gradlew signingReport 时很好。

在我的build.gradle 我有

signingConfigs 
        debug 
            storeFile file('debug.keystore')
            storePassword 'android'
            keyAlias 'androiddebugkey'
            keyPassword 'android'
        
    
    buildTypes 
        debug 
            signingConfig signingConfigs.debug
        
        release 
            // Caution! In production, you need to generate your own keystore file.
            // see https://facebook.github.io/react-native/docs/signed-apk-android.
            signingConfig signingConfigs.debug
            minifyEnabled enableProguardInReleaseBuilds
            proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
        
    

我的fastlanefastfile

desc "Submit a new build to Play Store 'Testing' track"
  lane :testingtrack do
    # gradle(task: 'assemble', build_type: 'Release')
    gradle(
      task: "bundle",
      build_type: "Release",
      print_command: false,
    )
    increment_version_code(
      gradle_file_path: "app/build.gradle",
    )
    upload_to_play_store(track: 'Testing', skip_upload_apk: true)
    # slack(message: 'Successfully distributed a new beta build')
  end  

我正在尝试上传一个测试版应用程序,它之前工作过一次,但我重新克隆了我的 repo 并且没有保存旧密钥。我还尝试使用 Android Studio 生成新的签名密钥,但失败并出现不同的错误,“无法读取文件”。我还尝试从 Play 商店下载上传密钥,但效果不佳。

【问题讨论】:

【参考方案1】:

如果没有您以前的调试密钥,您将无法修复此问题。

您上次上传的应用显然是使用由 Android Studio 自动创建的调试密钥进行签名的。但是,调试密钥库仍然是可用于发布的有效密钥库。

一旦您在任何发布或测试轨道(生产、测试​​版、Alpha 版、内部)中将应用上传到 Play 商店,您就会被锁定。然后,只有再次使用完全相同的签名密钥,您才能更新该应用.

【讨论】:

如果我没有旧钥匙怎么办。我该怎么办? 没什么。您只能将其作为具有不同包名称/包 ID 的新应用上传。【参考方案2】:

https://support.google.com/googleplay/android-developer/answer/9842756?hl=en-GB

上传密钥丢失或泄露?

如果您的私有上传密钥丢失或被泄露,您可以创建一个新密钥,然后让您的帐户所有者联系支持人员以重置密钥。联系支持人员时,请确保您的帐户所有者附上 upload_certificate.pem 文件。

在我们的支持团队注册新的上传密钥后,您将收到一封电子邮件,然后您可以更新您的密钥库并向 API 提供商注册您的密钥。

重要提示:重置您的上传密钥不会影响 Google Play 用于在将 APK 交付给用户之前对其进行重新签名的应用签名密钥。

【讨论】:

以上是关于如何修复 Google Api 错误:禁止:将应用程序上传到 Play 商店时,Android App Bundle 使用错误的密钥签名的主要内容,如果未能解决你的问题,请参考以下文章

使用服务帐户时如何修复 google ads api 未经授权的错误

403(禁止),Google Speech API 上的无效键错误

Google Calendar API - 禁止 - 服务帐户错误

Google Roads API - HTTP 错误 403:禁止

Youtube API 权限 403 禁止错误

在我的 React 应用程序中获取 api 数据时如何修复 CORS 错误?