Android AAB包经Firebase分发时Google登录报10错误咨询
问题根因
Google登录返回10错误码对应DEVELOPER_ERROR,核心触发逻辑是:运行中的应用签名证书SHA-1指纹,与Google Cloud/Firebase控制台中对应包名配置的合法签名指纹列表不匹配,导致OAuth校验被拒绝。你遇到的不同渠道表现差异,完全是不同分发链路对AAB包的重签机制导致,和本地构建配置本身无关。
先明确各场景的签名逻辑差异,就能对应上所有现象:
- 本地执行
gradlew clean assembleRelease构建的APK,使用你本地配置的release签名密钥,该密钥的SHA-1已在Google后台配置,因此直接本地安装时登录正常。 - AAB上传至Play Store内部测试渠道时,Play会使用你在Play Console配置的官方App Signing密钥,对AAB拆分生成的APK重签,该签名的SHA-1也已经在你上架正式版时配置到后台,因此从Play渠道下载的包登录正常。
- AAB上传至Firebase App Distribution(以下简称FAD)时,FAD不会直接下发原始AAB文件,会在服务端将AAB拆分为可直接安装的APK,默认配置下FAD会使用平台自带的临时测试密钥对生成的APK重签,这个临时密钥的SHA-1不在你Google后台的允许列表中,因此会触发10错误。
注:你问题中写的构建命令bundeRelease存在拼写错误,正确命令为bundleRelease,该笔误不影响本次问题的触发逻辑。
解决方案
按优先级从高到低可选择以下方案:
- 方案1:配置FAD使用自定义签名密钥处理AAB
上传AAB到FAD时,在分发设置页找到签名配置项,关闭默认的自动测试签名选项,上传你本地打release包使用的keystore文件,填入对应密钥别名、密钥密码、keystore密码,让FAD拆分AAB生成APK时使用你自己的release密钥签名。该方案下生成的安装包签名和你本地构建的APK完全一致,不需要额外修改Google后台配置,登录功能可直接正常运行,长期稳定性最高。 - 方案2:将FAD临时签名的SHA-1加入后台允许列表
先从FAD下载一个触发登录错误的APK安装包,在本地执行以下命令提取其签名SHA-1:
将命令输出的SHA1值,分别添加到Firebase控制台对应Android应用的签名指纹列表、Google Cloud控制台对应OAuth2.0客户端ID的允许签名列表中,等待10-15分钟配置生效后即可正常登录。keytool -printcert -jarfile 从FAD下载的APK文件本地路径.apk
注意:FAD的默认临时测试签名不是永久固定的,若后续重建Firebase应用、调整FAD项目配置,该签名可能发生变化,需要重新提取配置,维护成本高于方案1。 - 方案3:FAD测试分发直接上传APK包
如果内部测试阶段不需要使用AAB的动态交付特性,直接将本地assembleRelease构建出的、已用自有release密钥签好名的APK上传到FAD分发即可。FAD不会对已经完成签名的APK做重签操作,安装包签名和你本地直接安装的APK完全一致,Google登录可正常运行,操作成本最低。
内容的提问来源于stack exchange,提问作者dev.farmer
相关产品推荐
相关产品推荐

