0

我目前正在开发一个 android 项目,我使用 github 操作来测试该项目。但无论何时构建它都会因找不到google-services.json文件而出现错误。

产生的错误如下

File google-services.json is missing. The Google Services Plugin cannot function without it.

现在,我不想google-services.json在 github 上提交或上传文件。那么,有没有其他方法可以解决这个问题?

4

2 回答 2

1

如果您正在制作任何公共 repo 或任何示例应用程序,则不应将google-services.json文件提交到 Github repo。

当您处理私人仓库时,这取决于协作者如何管理 Firebase 凭据。google-services.json文件将具有 Firebase 项目的访问密钥和指纹。

结论:不要google-services.json通过任何 SVN 或 Git 存储库共享文件。用户可以将自己的google-services.json文件添加到项目中并在测试环境中运行。

于 2022-01-03T19:09:22.350 回答
1

嗯......我已经找到了解决方案,但如果有人需要,我会在这里解释。

我们可以将内容存储google-sevices.json在环境变量(又名 github 中的 Secrets)中。实际上 github 使用基于 linux 的 cli,所以我们必须使用 github 操作在 cli 上执行一些命令。

会有两个步骤...

  • 首先在base64中创建google-services.json文件
- name: Create file
  run: cat /home/runner/work/<Project-Name>/<Project-Name>/app/google-services.json | base64
  • 然后将数据放入文件中(基本上这是从 github secrets 中获取数据并在构建应用程序之前将数据放入 json 文件中)
- name: Putting data
  env:
    DATA: ${{ secrets.GOOGLE_SERVICES_JSON }}
  run: echo $DATA > /home/runner/work/<Project-Name>/<Project-Name>/app/google-services.json
  • 然后google-services.json通过以下方式在 github secrets 中定义文件的内容:Setting > Secrets > New Repository Secretusing nameGOOGLE_SERVICES_JSON

这两个命令都应该放在 gradle build 命令之前gradle.yml

通过这样做,您的google-services.json文件将被创建并包含数据,因此应用程序将成功构建。

于 2022-01-07T06:18:02.000 回答