8

我刚刚生成了要在我的 android 应用程序中使用的 Google Maps API 密钥。我必须提供应用程序的 SHA-1 指纹和包名称。它看起来像这样:

BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75;com.example.android.mapexample

如您所见,我必须提供应用程序的包名称。那么,这是否意味着我需要为不同的应用程序获取不同的 API 密钥?

PS:奇怪的是,不知何故,谷歌为我输入的 SHA-1 和包名称组合生成了两个 API 密钥。这是正常的吗?那么,我应该使用哪一个?

4

4 回答 4

10

您可以为不同的应用程序使用相同的密钥库和 API 密钥。

  1. 使用相同的密钥签署您的应用程序。
  2. 在控制台页面中为每个应用程序添加一行。

所以,像这样:

BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75;com.example.android.mapexample
BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75;com.example.android.anotherapp
BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75;com.example.temp.lastapp

现在,您可以对所有这些应用程序使用相同的 API 密钥。

于 2013-06-25T11:50:12.623 回答
1

在 Google Cloud 控制台中使用 SHA1 和包添加您的项目。

您绝对可以为不同的 Android 应用程序使用相同的密钥。只需在Google Cloud Platform 控制台中添加所有应用程序包名称和 SHA 密钥。它会 100% 工作。

在此处输入图像描述

如何获得 SHA1?

我注意到使用 Android Studio 生成时,SHA1 密钥是相同的。您可以通过 Gradle 签名报告任务生成 SHA1 密钥

在此处输入图像描述

于 2020-04-08T16:55:39.797 回答
1

老问题,但公认的答案是违反最佳实践的。您可以使用相同的 API 密钥,最好不要。来自最佳实践文档

为不同的应用程序使用独立的 API 密钥。这限制了每个键的范围。如果 API 密钥被泄露,您可以删除和撤销受影响的密钥,而无需更新您的其他 API 密钥。

于 2019-05-15T09:15:24.133 回答
0

You can use the same SHA-1 print for different pacakages, but you'll have to make different API keys for different apps. And yes, Google will generate a new key everytime you make a request.

于 2013-06-25T11:44:39.497 回答