如何将AndroidDebugKey添加至Google Cloud API密钥限制
Android调试签名适配Google API密钥限制的实操方案
首先明确规则:Google Cloud控制台不会默认跳过debug签名的校验,只要你给API密钥开启了「Android应用」类型的调用限制,所有发起的请求(不管debug还是release构建)都会校验包名+对应签名的SHA1指纹,没有匹配到SHA1的请求会直接被拦截返回鉴权失败。
你可以根据团队规模选下面两种方案适配,不需要无限制追加开发者密钥:
- 方案1:团队统一debug签名证书(推荐,适合2人以上协作团队)
这是行业通用的处理方式,只需要添加一次SHA1就能覆盖所有开发者的debug构建:- 生成一份专门用于团队调试的签名keystore,存储在团队私有代码仓库中(注意不要提交到公开开源仓库,避免泄露)
- 在项目的Gradle配置中指定debug构建类型默认使用这份统一调试证书,不需要每个开发者修改本地配置,Groovy写法的配置参考:
android { signingConfigs { debug { storeFile file("团队debug keystore的相对/绝对路径") storePassword "debug keystore的存储密码" keyAlias "debug密钥的别名" keyPassword "debug密钥的密码" } } buildTypes { debug { signingConfig signingConfigs.debug } } }- 提取这份统一debug证书的SHA1指纹,和release证书的SHA1一起添加到Google Cloud控制台的API密钥允许列表即可。
- 方案2:逐个添加开发者本地debug证书SHA1(适合1-2人的小项目)
如果团队规模极小,也可以收集每个开发者本地默认生成的debug证书SHA1,逐一添加到允许列表。开发者本地查询默认debug证书SHA1的命令如下:- macOS/Linux系统:
keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android- Windows系统:
keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android
小提示:如果你同时使用Firebase服务,可以直接在Firebase控制台的「项目设置-你的应用」面板中添加所有需要的SHA1指纹,Firebase会自动将指纹同步到关联的Google Cloud API密钥允许列表,不需要两边重复配置。
配置界面参考:
内容的提问来源于stack exchange,提问作者f_t
相关产品推荐
相关产品推荐

