【问题标题】:Using one Google Maps API key for different android applications将一个 Google Maps API 密钥用于不同的 Android 应用程序
【发布时间】:2013-06-25 11:36:03
【问题描述】:

我刚刚生成了要在我的 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:奇怪的是,Google 不知何故为我输入的 SHA-1 和包名称组合生成了两个 API 密钥。这是正常的吗?那么,我应该使用哪一个?

【问题讨论】:

    标签: android google-maps google-maps-android-api-2


    【解决方案1】:

    您可以为不同的应用程序使用相同的密钥库和 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 密钥和多个发布密钥。
    • 但是为什么 Google 会为我输入的一个键提供两个键呢?
    【解决方案2】:

    老问题,但公认的答案违反了最佳做法。您可以使用相同的 API 密钥,最好不要。来自Best Practices Docs

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

    【讨论】:

      【解决方案3】:

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

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

      如何获取SHA1?

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

      【讨论】:

        【解决方案4】:

        您可以为不同的包使用相同的 SHA-1 打印,但您必须为不同的应用创建不同的 API 密钥。是的,每次您提出请求时,Google 都会生成一个新密钥。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-06-15
          • 2012-08-31
          • 1970-01-01
          • 1970-01-01
          • 2018-04-25
          相关资源
          最近更新 更多