google-services.json 是保密的吗?

Is google-services.json confidential?

按照有关在 Android 应用程序中设置 Google 分析的指南进行操作 (https://developers.google.com/analytics/devguides/collection/android/v4/) 我想知道这个 google-services.json 文件是否可以安全地提交到源代码版本控制中并推送到 public GitHub 存储库,或者如果此文件可能包含凭据或机密。

我在其他地方找不到明确的答案,但我可以看到示例应用程序都提交了文件 (https://github.com/google/climb-tracker/blob/master/mobile/google-services.json),其他人也已将文件添加到他们的 .gitignore。

应视为机密。生成的 json 文件包含可用于发送推送通知的 api_key

如果您转到 Google 开发者控制台上的凭据页面,您将在 API keys

下列出的 json 文件中看到密钥

是的。至少 api_key 的东西应该保密。

google-services.json 放入您的 public 存储库并对其保密的一种方法是使用 BlackBox

在您的应用级别 build.gradle 中放置一个复制任务,例如 defaultConfig,如下所示:

defaultConfig {
    ...
    ...
    copy {
        from "../secret/"
        into "."
        include "*.json"
    }
}

这会将文件从您的 secret/ 文件夹复制到正确的位置。

现在,要构建您的应用程序,您必须 运行 blackbox_edit_start google-services.json.gpg 第一次检查您的存储库,然后就可以了。

来自 this post 似乎没有真正的理由来保证这个文件的安全。它的数据无论如何都会在 APK 中。