news 2026/6/14 18:59:40

Google 登录问题排查指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Google 登录问题排查指南

📋 问题描述

症状:Flutter 应用通过 Google Play 下载安装后,点击 Google 登录按钮报错:

GoogleSignInException(code GoogleSignInExceptionCode.canceled, [16] Account reauth failed., null)

环境

  • Flutter + google_sign_in 插件
  • 应用以 AAB 格式上传到 Google Play
  • 用户从 Google Play 下载安装

🔍 排查过程

第 1 步:添加调试日志

由于 Release 模式下print()不输出日志,创建了一个日志收集器在应用内显示错误详情:

import 'dart:developer' as developer; class GoogleAuthLogger { static final List<String> _logs = []; static void log(String message) { final timestamp = DateTime.now().toString().substring(11, 19); final entry = '[$timestamp] $message'; _logs.add(entry); developer.log(message, name: 'GoogleAuth'); } static String getLogs() => _logs.join('\n'); static void clear() => _logs.clear(); }

在 UI 中添加"查看调试日志"按钮,登录失败时显示详细日志。

第 2 步:定位问题

通过日志发现错误发生在Google 原生认证阶段(还没到 Supabase):

[22:46:47] 📱 触发 Google 登录界面 [22:46:49] ❌ Google 认证失败: GoogleSignInException(code GoogleSignInExceptionCode.canceled, [16] Account reauth failed., null)

错误码[16] Account reauth failed表示SHA-1 指纹不匹配

第 3 步:检查 SHA-1 配置

检查本地 Release keystore 的 SHA-1:

keytool -list -v -keystore ~/linguadiary-release-key.jks -alias linguadiary-key-alias

输出:

SHA1: 13:0X:62:E7:BE:32:F4:E4:C1:0C:D6:04:BA:15:F7:BD:7D:49:13:C9

Google Cloud Console 中的 Android OAuth Client 已配置这个 SHA-1,但还是失败...

第 4 步:发现根本原因

应用是以AAB 格式上传到 Google Play 的,Google Play 会用自己的密钥重新签名 APK

这意味着用户下载的 APK 签名与本地 keystore 不同。

🔑 关键知识:两个证书的区别

证书SHA-1谁持有用途
Upload Key(上传密钥)13:0F:61:E7:...开发者本地上传 AAB 到 Google Play 时验证身份
App Signing Key(应用签名密钥)DC:B4:A6:04:...Google 服务器给用户下载的 APK 签名

流程图

开发者电脑 Google Play 用户手机 │ │ │ │ 1. 用 Upload key 签名 │ │ │ AAB 上传 │ │ ├──────────────────────────►│ │ │ │ 2. Google 用 │ │ │ App signing key │ │ │ 重新签名 APK │ │ ├──────────────────────────►│ │ │ │ │ │ 用户安装的 APK │ │ │ 签名 = App signing key│

✅ 解决方案

1. 获取 App Signing Key 的 SHA-1

  1. 打开 Google Play Console
  2. 选择应用 →Test and releaseApp integrity
  3. 点击Play app signingSettings
  4. 找到App signing key certificate的 SHA-1

2. 更新 Google Cloud Console

  1. 打开 Google Cloud Console - Credentials
  2. 编辑 Android Release OAuth Client
  3. 将 SHA-1 改为 App signing key 的 SHA-1
  4. 保存

3. 清除 Google Play 服务缓存(测试设备)

由于之前用错误的 SHA-1 尝试过登录,手机缓存了旧配置:

  1. 手机设置应用Google Play 服务
  2. 存储清除缓存
  3. 重新测试

⚠️ 注意:普通用户不需要这一步,只有测试设备因缓存旧数据才需要清除。

📌 经验总结

  1. AAB 上传 = Google 重新签名:必须使用 App signing key 的 SHA-1
  2. APK 直接安装:使用 Upload key 的 SHA-1
  3. Release 模式调试:使用dart:developerlog()函数
  4. 缓存问题:测试时如遇问题,清除 Google Play 服务缓存

🔧 调试检查清单

  • [ ] 确认 OAuth 同意屏幕已配置并发布(或测试账号已添加)
  • [ ] 确认 Android OAuth Client 的包名正确
  • [ ] 确认使用正确的 SHA-1(Google Play 下载用 App signing key)
  • [ ] 确认 Web Client ID 用于serverClientId参数
  • [ ] 测试设备清除 Google Play 服务缓存
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 16:28:40

计算机视觉:从入门到熟悉(四)

第2章 卷积2.3 二维卷积2.3.1 二维卷积的数学基础与几何直观2.3.1.1 二维卷积的严格数学定义二维卷积的定义&#xff1a; 对于两个二维函数 $f(x,y)$ 和 $g(x,y)$&#xff0c;它们的卷积定义为&#xff1a;对于离散情况&#xff0c;如果 $f$ 是 $M \times N$ 的图像&#xff0c…

作者头像 李华
网站建设 2026/6/15 11:29:14

【SSM果蔬经营平台系统】(免费领源码+演示录像)|可做计算机毕设Java、Python、PHP、小程序APP、C#、爬虫大数据、单片机、文案

摘要 首先,论文一开始便是清楚的论述了系统的研究内容。其次,剖析系统需求分析,弄明白“做什么”,分析包括业务分析和业务流程的分析以及用例分析,更进一步明确系统的需求。然后在明白了系统的需求基础上需要进一步地设计系统,主要包罗软件架构模式、整体功能模块、数据库设计。…

作者头像 李华
网站建设 2026/6/15 13:28:09

10 纳米已是极限?GPT-5.2 和 Gemini 3 正在“逼疯”芯片设计师!下一代 AI 模型需要的光子芯片与量子算力!

朋友们&#xff0c;我们都知道 GPT-5.2和 Gemini 3的智能程度令人咋舌&#xff0c;但它们之所以能聪明到这个地步&#xff0c;背后是数万亿次的浮点运算和天文数字的晶体管堆叠。这场 AI 竞争&#xff0c;已经将我们推向了**“后摩尔时代”最严峻的挑战&#xff1a;算力瓶颈与能…

作者头像 李华
网站建设 2026/6/14 23:04:37

3小时搞定双支付集成:FastAPI全栈项目接入Stripe与PayPal终极指南

3小时搞定双支付集成&#xff1a;FastAPI全栈项目接入Stripe与PayPal终极指南 【免费下载链接】full-stack-fastapi-postgresql tiangolo/full-stack-fastapi-postgresql: 这是一个用于构建全栈Web应用程序的Python框架&#xff0c;使用FastAPI和PostgreSQL。适合用于需要使用P…

作者头像 李华
网站建设 2026/6/14 0:00:54

量子软件测试:我们现在需要准备什么?

随着IBM、Google等科技巨头陆续实现量子霸权&#xff0c;量子计算正从理论走向工程化应用。根据Gartner预测&#xff0c;到2027年将有40%的大型企业启动量子计算项目。作为软件测试从业者&#xff0c;我们正站在传统测试与量子测试的历史交汇点。面对叠加态、量子纠缠等全新特性…

作者头像 李华
网站建设 2026/6/15 15:27:19

【浏览器】页面加载原理详解

目录 概述浏览器架构基础页面加载完整流程HTML解析与DOM构建CSS解析与样式计算JavaScript执行机制渲染树构建与布局绘制与合成性能优化实践HTTP/3与QUIC协议详解Service Worker详解浏览器安全机制浏览器缓存机制详解JavaScript内存管理首屏渲染指标详解浏览器调试技巧移动端浏…

作者头像 李华