Flutter PlatformException(使用Flatter构建appbundle时登录失败,com.google.android.gms.common.api.ApiException:10:,null)
我正在用和构建一个颤振应用程序 有一段时间一切都很好,我发布的产品上的所有现有用户都没有遇到任何问题,但不久前我开始收到新用户无法登录的报告。直到报告开始积累,我才对它想得太多。我发现他们把错误贴在了标题上。我花了很多时间调查 我已经浏览了本期的所有其他StackOverflow条目: 我已经尝试了所有的解决方案: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/目
- 在上输入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
- 对于这些组合中的每一个,我都会
,并用更新的文件替换google-services.json文件flatterclean
- 验证了
和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上工作。你在用什么