Google Fit Credentials:适用于生产,而不是开发

Google Fit Credentials: works on Production, not on Development

目标

我正在开发一个与 Google Fit 配合使用的应用程序,但由于某些原因我无法让它们同时工作。

在再次重新创建凭据之前,情况正好相反:开发 工作正常,而 生产 不工作。

凭据 & Google Api

我启用了 Api 并添加了凭据:

Google Api website

密钥库

生成的KetStore包含2个密钥,一个用于生产,一个用于开发。每个都根据其包名称在 Credentials 页面中设置(请参阅 Android App)。

Terminal dump of KeyStore

Android 应用

我们的 App 有 2 个不同的包名:

这是通过 Gradle 配置实现的,使用了 flavors。这样我们在手机上就有了 2 个应用程序用于测试目的。

问题

我不知道发生了什么冲突使我无法让它们同时工作。

我只有 1 个同时工作,不工作的一个在 LogCat.

上得到 CANCELLED 结果

也许具有相同的包前缀 (xxx.yyy.) 是一个问题,因此读取了错误的凭据?

如有任何建议,我们将不胜感激。 谢谢

原来 Android Studio 在编译 APK 时没有使用我的 keystore。它仍然使用默认的 debug.keystore 别名 AndroidDebugKeyandroid 密码。

出于某种原因,它没有读取我的 development 环境签名配置,而是 production.

为了检查每个 Build Variant 的签名是什么,使用:

  • 打开一个项目

  • 打开右侧的 Gradle 选项卡

  • 展开<your_project> ==>任务==> Android

  • 双击 singingReport(这将创建一个 Gradle 类型 Run/Debug Configuration

  • 打开右下角的Gradle Console

此时您应该会看到其中的一些内容:

Variant: developmentDebug
Config: debug
Store: /Users/<username>/.android/debug.keystore
Alias: AndroidDebugKey
MD5: YY:YY:YY:YY:YY:YY:YY:YY:YY:YY:YY:YY:YY:YY:YY:YY
SHA1: XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX
Valid until: <date>

确保每个变体的 SHA1Credentials 页面中指定的变体相同。