【问题标题】:How to add AndroidDebugKey to the Google Cloud API Key Restriction如何将 AndroidDebugKey 添加到 Google Cloud API 密钥限制
【发布时间】:2022-07-01 21:46:42
【问题描述】:
我开发了一个使用 Google 的一些 API(例如 Firebase Cloud Messaging API、Places API...)的 Android 应用。 API 密钥应仅限于我的特定应用程序以及该应用程序使用的所有 Google API 的子集。因此,应该可以只从我的应用程序调用 API,也应该可以只调用一组已定义的 API,而不是全部。
很容易选择 API 的子集。还可以添加允许调用 API 的 Android 应用程序:我需要添加包名称和 SHA1 指纹。所有这些都适用于发布版本。但调试版本使用自动创建的 AndroidDebugKey。所以每个开发者都有她/他自己的 AndroidDebugKey。这如何与 API 限制相互作用?这是否意味着我必须将每个开发人员的每个证书添加到控制台?还是默认忽略AndroidDebugKey?
请看下面我的(德语)截图。
【问题讨论】:
标签:
android
security
mobile
google-api
android-signing
【解决方案1】:
最简单的方法是在开发人员之间共享调试密钥库,只需在团队成员之间选择 1 个密钥库(或从头开始创建一个)并将其提交到应用的存储库中。
然后您只需更改您的 gradle 文件以指向此调试密钥库以进行调试构建。例如,如果你选择使用 AS 生成的,你可以有类似的东西:
android {
...
signingConfigs {
debug {
storeFile file("../local-build/debug.keystore")
storePassword "android"
keyAlias "androiddebugkey"
keyPassword "android"
}
}
...
buildTypes {
debug {
....
signingConfig signingConfigs.debug
}
}
}
debug.keystore 足够安全,可以提交,因为 PlayStore 不接受使用此密钥库签名的 APK。
通过这种方式,您可以解耦他们正在使用的开发人员/机器,您只需在 Google 控制台中添加一个 SHA-1 即可进行本地测试和保护 API。
注意不要在您的存储库中提交任何用于签署 Play 商店接受的 PROD 和/或 TEST 应用的数据(密钥库和密码)。
另一种方法是使用经过身份验证的遥控器
代替开发人员签署本地构建的服务,它是
更安全,但设置起来更复杂。