【问题标题】:Android Google Services: API key and SHA-1 fingerprint for release and debugAndroid Google Services:用于发布和调试的 API 密钥和 SHA-1 指纹
【发布时间】:2016-07-07 04:37:29
【问题描述】:

我能够在 android studios 中成功构建 release-apk。

我的应用使用 Google 的一些服务,例如 Android 版 Google App Invites 和 Google Places。

要获得这些服务,我必须在 google 开发者控制台上注册一个 API 密钥,如下所示:

我不确定获取 API 密钥的包名称和 SHA-1 指纹部分。

如果我有我的应用程序的调试和发布版本(假设包名称是 com.myapp),我是否将 com.myapp 作为包名称输入两次但设置发布和调试 SHA-1分别为每个包名?

所以:

com.myapp (SHA-1 fingerprint) S1:2D:3F etc
com.myapp (SHA-1 fingerprint) D2:1W:2V etc

我尝试这样做,但到目前为止,该应用的发布版本似乎根本不想工作。

APP_INVITE 说:

找不到包名称 com.myapp 的 Android 客户端 ID。 (APPINVITE_CLIENT_ID_ERROR)

地点自动完成 说:

获取自动完成预测 API 调用时出错: 状态{statusCode=PLACES_API_INVALID_APP, resolution=null}

【问题讨论】:

    标签: android release android-debug google-play-services


    【解决方案1】:

    好的 - 经过一些调查,是的,您确实输入了两次包名称,然后分别输入了发布和调试版本的 SHA-1 指纹。这将使 PLACES 正常工作。

    此外,根据我的调查,我注意到 APP_INVITE 错误指出找不到该包的客户端 ID。请注意,这是指您的 OAuth 2.0 客户端 ID,可以在您的 Google Developer Console 中的 API 密钥下找到。更改该 SHA-1 密钥(在这种情况下,没有选项可以放入开发 SHA-1 和 debud SHA-1)将导致 APP_INVITE 工作。

    【讨论】:

      【解决方案2】:

      这有点令人困惑,我认为摆脱这种情况的最佳解决方案是添加applicationIdSuffix,以便您(和任何其他服务)可以区分构建:com.myapp.beta 用于构建,com.myapp 用于释放。

      我建议你看看这个详细的教程:http://medyo.github.io/2015/different-android-app-resources-gradle-build-type/

      希望能回答你的问题

      【讨论】:

      • 恐怕你来得太晚了。我已经解决了我的问题。请参阅下面的答案。
      • 是的,我看到了,它会起作用,但是您将无法区分哪个键对应于哪个构建?我强烈建议使用 id 后缀。
      • 好点。不幸的是,我在最后一分钟才签署了该应用程序以供发布,因此我现在必须使用我的快速修复方法,并将继续使用您的解决方案。再次感谢 +1
      • 很高兴,请将答案标记为已接受,以便其他处于相同情况的人可以轻松找到解决方案。
      猜你喜欢
      • 2013-04-30
      • 2013-03-21
      • 1970-01-01
      • 1970-01-01
      • 2017-09-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多