You need to enable JavaScript to run this app. 同包名不同签名场景下Google应用登录返回错误码10的问题咨询
优惠活动
大模型
产品
解决方案
定价
更多

同包名不同签名场景下Google应用登录返回错误码10的问题咨询

场景说明
  • 已上架Google Play的Android应用,此前已完成Firebase邮箱认证接入,存量用户基于该认证体系正常运行;本次迭代新增Google账号登录能力
  • Debug构建模式下,Google Sign-In全流程测试功能完全正常
  • 使用自有密钥生成签名Release包上传为新版本,从Google Play渠道下载正式版验证时,Google登录返回Google SignIn Fails提示,对应错误码10;现有公开排查资料均指向SHA1配置异常
  • 卸载Play渠道正式版后,从Android Studio直接运行Debug版本,首次启动弹出应用安装失败提示
    Android Studio安装失败提示截图
  • 确认接受系统弹出的提示授权后,Debug包的Google SignIn功能恢复正常
  • 尝试将Play App Signing环节的SHA1值(05:FE:xx:xx:...:xx)添加到Firebase配置时,系统弹出报错:「该包名与SHA-1值的组合,已在其他项目中存在对应的OAuth2客户端」
核心疑问与解答

疑问1:Firebase设置页配置的SHA证书与Android Studio signinReport中获取的SHA-1值一致,但与Google Play App Signing页面展示的SHA-1值不同,两组值是否需要保持一致?

  • 两组值不需要强制完全相同,但必须全部纳入对应服务的信任列表
  • Android Studio signinReport中查询到的SHA1,对应两类签名:本地Debug构建签名、应用上传到Play渠道时使用的上传密钥签名。该值目前已完成Firebase侧配置
  • Google Play App Signing页面展示的独立SHA1,对应Play官方托管的、用于最终分发版本签名的应用签名密钥——用户从Play下载的正式安装包,都是使用该密钥重签名的版本,而非你本地生成的上传密钥直接签名的安装包
  • Google Sign-In返回错误码10的本质原因,就是Google服务校验到当前安装包的签名SHA1不在OAuth客户端的信任列表中,直接拦截授权请求

疑问2:如何调整配置,在不破坏现有Firebase连接、不丢失存量用户的前提下修复问题?(可接受暂时停用Google SignIn的方案)

  • 以下操作全程不会影响现有Firebase连接、存量用户数据,所有调整仅针对Google登录的OAuth配置环节,不会触碰已有的邮箱认证用户体系:
    1. 完整保留Firebase中已有的、对应你本地/上传密钥的SHA1记录。该部分配置可保障开发环境、旧渠道安装包的Firebase能力正常,不会影响存量用户的邮箱认证登录
    2. 针对「SHA1已在其他项目存在OAuth2客户端」的报错,不要尝试在当前Firebase项目重复添加该SHA1。该报错本质是当前包名与Play应用签名SHA1的组合,在应用首次上传开启Play App Signing时,已自动在Google Cloud侧生成过OAuth2客户端条目
    3. 配置调整流程:
      • 定位与当前Firebase项目绑定的Google Cloud项目
      • 在凭据板块的OAuth2客户端列表中,查找匹配当前包名+Play应用签名SHA1的条目,确认其关联权限归属当前Firebase项目
      • 若无法快速定位权限归属,可暂时注释代码中所有Google SignIn的调用逻辑,先上架不含Google登录的版本,保障存量用户体验不受任何影响,后续再逐步排查OAuth权限问题
  • 所有操作不会修改Firebase中已有的用户表、邮箱认证规则、云存储/数据库配置,存量用户的登录状态、数据关联关系不会发生任何变化

疑问3:目前持有新旧两个keystore文件,切回使用旧keystore是否能解决当前问题?

  • 切回旧keystore无法从根本上解决当前问题
  • 只要应用开启了Google Play App Signing机制,用户最终下载的分发版本,始终会被Play用官方托管的应用签名密钥重签名。你本地使用任何keystore生成的上传包,仅会作为校验上传合法性的上传密钥,不会成为最终分发给用户的安装包的签名
  • 切回旧keystore仅在一种场景下生效:即应用从未开启Play App Signing机制,此时你本地签名的keystore就是最终分发版本的签名密钥,匹配Firebase配置的SHA1即可正常运行。但从你可在Play后台查看独立的App Signing SHA1值判断,你的应用已开启该机制,因此切换keystore无实际作用

内容的提问来源于stack exchange,提问作者Stucked so I came here

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.08 09:54:09