Flutter PlatformException(使用Flatter构建appbundle时登录失败,com.google.android.gms.common.api.ApiException:10:,null)

Flutter PlatformException(使用Flatter构建appbundle时登录失败,com.google.android.gms.common.api.ApiException:10:,null),flutter,firebase-authentication,google-signin,android-app-bundle,googlesigninapi,Flutter,Firebase Authentication,Google Signin,Android App Bundle,Googlesigninapi,我正在用和构建一个颤振应用程序 有一段时间一切都很好,我发布的产品上的所有现有用户都没有遇到任何问题,但不久前我开始收到新用户无法登录的报告。直到报告开始积累,我才对它想得太多。我发现他们把错误贴在了标题上。我花了很多时间调查 我已经浏览了本期的所有其他StackOverflow条目: 我已经尝试了所有的解决方案: 在上输入SHA1调试键 确认我的电子邮件已输入Firebase网站 下载google-services.json文件并将其放入android/app/目

我正在用和构建一个颤振应用程序

有一段时间一切都很好,我发布的产品上的所有现有用户都没有遇到任何问题,但不久前我开始收到新用户无法登录的报告。直到报告开始积累,我才对它想得太多。我发现他们把错误贴在了标题上。我花了很多时间调查

我已经浏览了本期的所有其他StackOverflow条目:

  • 我已经尝试了所有的解决方案:

    • 在上输入SHA1调试键
    • 确认我的电子邮件已输入Firebase网站
    • 下载google-services.json文件并将其放入
      android/app/
      目录
    • 使用
      flatterbuildappbundle--debug构建flatter应用程序
    • PlatformException(登录失败,com.google.android.gms.common.api.ApiException:10:,null)
    所以我也试着:

    • 只需Firebase站点上的release键,并使用
      flatter build appbundle构建--release
    • 使用release键和debug键
    • 以上每种组合使用SHA256
    • 对于这些组合中的每一个,我都会
      flatterclean
      ,并用更新的文件替换google-services.json文件

    • 验证了
      android/build.gradle
      android/app/build.gradle

    • 验证“Google”已启用,因为Firebase站点上已启用“登录方法”
    • 我甚至填写了我的应用程序名称、徽标、电子邮件、主页、隐私和服务条款链接,并保存了
    以下是我正在运行的版本:

      google_sign_in: ^4.0.7
      firebase_auth: ^0.14.0+5
    
    android/app/build.gradle的相关部分:

    dependencies {
        implementation "androidx.appcompat:appcompat:1.1.0-alpha01"
        testImplementation 'junit:junit:4.12'
        androidTestImplementation 'androidx.test:runner:1.1.1'
        androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
        implementation 'com.google.firebase:firebase-analytics:17.2.0'
        implementation "com.google.android.gms:play-services-auth:16.0.1"
        implementation "com.google.android.gms:play-services-identity:16.0.0"
        implementation "com.android.support:support-v4:28.0"
    }
    
    apply plugin: 'com.google.gms.google-services' 
    
    buildscript {
       ext.kotlin_version = '1.2.71'
        repositories {
            google()
            jcenter()
        }
    
        dependencies {
            classpath 'com.android.tools.build:gradle:3.2.1'
            classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
            classpath 'com.google.gms:google-services:4.3.2'
        }
    }
    
    android/build.gradle的相关部分:

    dependencies {
        implementation "androidx.appcompat:appcompat:1.1.0-alpha01"
        testImplementation 'junit:junit:4.12'
        androidTestImplementation 'androidx.test:runner:1.1.1'
        androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
        implementation 'com.google.firebase:firebase-analytics:17.2.0'
        implementation "com.google.android.gms:play-services-auth:16.0.1"
        implementation "com.google.android.gms:play-services-identity:16.0.0"
        implementation "com.android.support:support-v4:28.0"
    }
    
    apply plugin: 'com.google.gms.google-services' 
    
    buildscript {
       ext.kotlin_version = '1.2.71'
        repositories {
            google()
            jcenter()
        }
    
        dependencies {
            classpath 'com.android.tools.build:gradle:3.2.1'
            classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
            classpath 'com.google.gms:google-services:4.3.2'
        }
    }
    
    颤振医生输出:

    $ flutter doctor
    Doctor summary (to see all details, run flutter doctor -v):
    [✓] Flutter (Channel stable, v1.9.1+hotfix.2, on Linux, locale en_US.UTF-8)
    
    [✓] Android toolchain - develop for Android devices (Android SDK version 29.0.0-rc1)
    [✓] Android Studio (version 3.5)
    [✓] VS Code (version 1.38.1)
    [!] Connected device
        ! No devices available
    
    ! Doctor found issues in 1 category.
    
    所有测试都使用Firebase上的Robo测试实验室在多台设备上完成(只是为了查看登录是否成功,而不是测试UI)


    TLDR; 最后,我终于发现,如果我使用
    flatterbuildapk
    (与appbundle相反)构建apk,它是有效的。然后我意识到,问题开始出现的时间与颤振开始建议我生成AppBundle而不是APK的时间差不多


    在生成appbundle时,是否有人能够使用google\u sign\u登录到一个全新的Flatter用户?(请记住,以前登录到早期版本的应用程序的现有用户可以正常工作。)

    如果您使用内部应用程序共享在实际的Android设备(如我)上测试颤振版本,则需要添加另一个应用程序签名证书指纹

    在Google Play控制台的左侧导航栏中,转到:开发者工具->内部应用程序共享

    选择应用程序证书选项卡。应该是这样的:

    复制SHA1密钥并将其添加到Firebase控制台->项目设置->[您的Android应用程序]->SHA证书指纹(使用按钮添加指纹)

    下载您的更新的google services.json,并将其更新/添加到项目的android/app文件夹中

    这适用于新用户和现有用户。我使用
    flatterbuildappbundle


    谷歌没有记录这一点,我也没有在Flutter社区的其他地方看到过这种解决方案。在尝试了您所有的参考链接和其他几个链接后,我在Google Play控制台中摸索时发现了这个解决方案。

    如果您使用内部应用程序共享来测试实际Android设备(如我)上的颤振构建,您需要添加另一个应用程序签名证书指纹

    在Google Play控制台的左侧导航栏中,转到:开发者工具->内部应用程序共享

    选择应用程序证书选项卡。应该是这样的:

    复制SHA1密钥并将其添加到Firebase控制台->项目设置->[您的Android应用程序]->SHA证书指纹(使用按钮添加指纹)

    下载您的更新的google services.json,并将其更新/添加到项目的android/app文件夹中

    这适用于新用户和现有用户。我使用
    flatterbuildappbundle


    谷歌没有记录这一点,我也没有在Flutter社区的其他地方看到过这种解决方案。在尝试了您所有的参考链接和其他几个链接后,我在Google Play控制台中摸索时遇到了这个解决方案。

    您好,我在Mac上遇到了完全相同的问题,但该应用程序可以在windows上运行。你在用什么操作系统?java版本呢?我看到我们有相同的应用程序配置。。。如果我修好了,我会让你知道的!如果你修好了,请告诉我please@MauroSebastianVolpeParedes我尝试在LinuxMint和Windows10上构建。两者具有相同的行为(apk工作,abb错误)。Windows上的jdk1.8.0_152。您是从一开始就注册了Play Signing,还是有一个后来注册的现有应用程序?@Pierre,已经有一段时间了,但我认为这是Play Store中的一个现有应用程序,我在一段时间后注册了Play Signing。这有什么关系?试着看看这是否与签名身份验证有关,但可能不是。在不能登录的设备中有什么共同的模式吗?嗨,我在Mac上有完全相同的问题,但应用程序在windows上工作。你在用什么