You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Google登录在Release签名APK正常但.aab发布包失效问题

问题诱因
  • 核心原因是SHA-1指纹不匹配:当你使用AAB格式发布且开启了Google Play应用签名功能时,Google Play会自动用其托管的应用签名密钥对最终分发的APK重签名,你此前在Firebase、Google Cloud控制台配置的仅为本地打包所用的上传密钥的SHA-1指纹,缺少Google Play托管签名密钥的SHA-1,导致Google登录服务校验不通过,抛出Api Exception Error 10。
  • 少数未开启Google Play应用签名的场景下,问题源于AAB打包配置错误:部分构建环境会默认对AAB使用调试签名,未正确加载你配置的Release签名信息,导致和后台配置的SHA-1不匹配。
  • 本地用bundletool转换AAB测试的场景下,若未在转换时指定Release签名参数,转换后生成的APK会使用默认调试签名,同样会触发该错误。
解决方案

已开启Google Play应用签名的场景

  1. 打开Google Play Console,进入对应应用的「设置」-「应用完整性」页面,在「应用签名密钥证书」板块复制SHA-1指纹
  2. 将复制的SHA-1分别添加到对应平台的配置中:
    • Firebase控制台:进入对应项目的「项目设置」-「您的应用」,在「SHA证书指纹」列表新增该指纹
    • Google Cloud控制台:进入对应项目的「API和服务」-「凭据」,找到对应Android端的OAuth 2.0客户端ID,在签名配置中新增该SHA-1
  3. 重新下载Firebase项目的google-services.json文件,替换项目中原有的对应文件
  4. 重新构建Release版AAB包即可恢复正常

未开启Google Play应用签名的场景

检查项目级build.gradle的签名配置,确保Release构建类型的签名配置和打包Release APK的配置完全一致,参考配置如下:

android {
    signingConfigs {
        release {
            storeFile file("你的release签名密钥文件路径")
            storePassword "你的密钥库密码"
            keyAlias "你的release密钥别名"
            keyPassword "你的密钥密码"
        }
    }
    buildTypes {
        release {
            signingConfig signingConfigs.release
            // 其余原有配置保持不变
        }
    }
}

本地用bundletool测试的场景

转换AAB为APK时需额外指定Release签名参数,示例命令如下:
java -jar bundletool.jar build-apks --bundle=你的应用.aab --output=输出的.apks --ks=你的release签名密钥文件 --ks-key-alias=你的release密钥别名 --ks-pass=pass:你的密钥库密码 --key-pass=pass:你的密钥密码


内容的提问来源于stack exchange,提问作者Vamsi Reddy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 00:36:08