如何解决在 Google API 密钥和 Firebase 设置中设置哪些 RELEASE 证书签名/上传
虽然有很多相关帖子,但我找不到我问题的确切答案。
在我们将应用程序投入生产之前,我将创建一个单独的 Firebase 项目,但现在我尝试使用单个 Firebase 项目,但为 DEBUG 和 RELEASE 使用单独的 google API 密钥。
对于 Android RELEASE 版本,每个 SHA-1 指纹(签名与上传)必须在哪里输入?
我将签名(来自 GooglePlay 控制台)和上传(来自带有 RELEASE 密钥库的 keytool)指纹放入:
-
google-services.json
在应用构建中 - Firebase 项目设置
- Google API 密钥限制
我假设我需要两者,因为在 API 密钥限制中,因为无论 RELEASE 版本是直接上传到测试设备还是从 GooglePlay 商店下载,我都需要密钥才能工作。
我认为我不需要在 google-services.json
中签名 SHA-1,因为我认为 GooglePlay 会自动用自己的覆盖 SHA-1,但其他帖子提到需要在 Firebase 设置上签名 SHA-1 作为好吧,并在那里添加它更新了 Firebase 提供的 google-services.json
文件以供下载。
但是,在尝试匿名登录(在测试设备上使用 RELEASE 版本)时,RELEASE 版本会出现错误:
"Requests from this Android client application {package.name} are blocked."
我输入指纹的顺序重要吗?我应该只放一个吗?之前我只有上传指纹,但是也没用。
从我尝试无济于事的相关帖子中得到的解决方案:
- 在 Firebase 中删除并重新输入指纹
有效但不理想:
- 删除 API 密钥中的证书限制并使 API 密钥不受限制
更新: 将 DEBUG 证书添加到发布 API 密钥限制(即使 RELEASE 模式下的 google-services.json 没有将其列为客户端)显然有效,我不明白为什么。
解决方法
显然,将 DEBUG 证书添加到 RELEASE API 密钥限制(即使 RELEASE 模式下的 google-services.json 没有列出它)是有效的。
似乎将 RELEASE 版本部署到通过 USB 连接的设备上仍会无意中使用 DEBUG 证书进行签名。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。