在不同的Android应用程序中使用同一个Google Maps API密钥

9

我刚刚生成了用于我的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密钥?

附注:奇怪的是,谷歌以某种方式为我输入的SHA-1和包名组合生成了两个API密钥。这正常吗?那么,我应该使用哪一个?

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 密钥。


您甚至不需要使用相同的签名密钥。您可以为调试签名密钥使用单个Google Maps Android API v2密钥,并为多个发布密钥使用不同的密钥。 - MaciejGórski
但是为什么谷歌会为我输入的一个按键提供两个密钥呢? - Born Again

2

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

您可以完全使用同一密钥用于不同的Android应用程序。只需在Google Cloud平台控制台中添加所有应用程序的包名和SHA密钥即可。这将100%有效。

enter image description here

如何获取SHA1?

我已经注意到,当您使用Android Studio生成时,SHA1密钥是相同的。 您可以通过Gradle signingReport任务生成SHA1密钥。

enter image description here


1

虽然这是一个老问题,但是被接受的答案违反了最佳实践。你可以使用相同的API密钥,但是最好不要这样做。根据最佳实践文档:

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


0

你可以为不同的包使用相同的SHA-1指纹,但是你需要为不同的应用程序创建不同的API密钥。是的,每次你发出请求时,Google都会生成一个新的密钥。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接