React Native打包AAB转APK后Google身份验证无法使用如何解决
问题原因
你遇到的是签名证书不匹配导致的Google身份验证失败,确实需要额外添加对应场景的SHA密钥。你此前添加的仅为本地打包release版本所用的签名密钥SHA,以下是两种不同场景的对应解决方案:
场景1:AAB包需上传到Google Play分发
如果你的AAB是要上传到Google Play商店,你大概率开启了Google Play官方的应用签名服务,Google会用其托管的发布签名证书对上传的AAB重新签名,该证书的SHA与你本地的打包密钥SHA不一致,导致Firebase身份验证不通过。
解决步骤:
- 打开Google Play Console,进入对应应用的「设置」>「应用完整性」>「应用签名」页面,复制「应用签名密钥证书」下的SHA1值
- 进入Firebase控制台对应项目的「项目设置」页面,找到你的Android应用配置,将复制的SHA1添加到SHA证书指纹列表中
- 重新下载
google-services.json替换项目app目录下的旧文件,重新构建AAB即可
场景2:本地构建AAB用bundletool测试安装
如果你只是在本地打包AAB、用bundletool转换APK做测试,没有上传到Google Play的需求,问题出在你用bundletool转换APK时没有指定你的release签名密钥,生成的APK签名与你本地release构建的签名不一致。
解决步骤:
运行bundletool时添加签名参数,示例命令如下:
bundletool build-apks --bundle=./app/build/outputs/bundle/release/app-release.aab --output=./app-release.apks --ks=./你的release签名密钥路径.keystore --ks-key-alias=你的密钥别名
按提示输入密钥库密码和密钥密码后,生成的APKs解压安装后的APK签名与本地release构建一致,无需额外添加SHA到Firebase。
验证方法
你可以用以下命令查看已安装APK的签名SHA1,确认是否和Firebase中配置的指纹匹配:
keytool -printcert -jarfile 待验证的应用.apk
内容的提问来源于stack exchange,提问作者Pro
相关产品推荐
相关产品推荐

