【问题标题】:Google services json file for github actions?用于 github 操作的 Google 服务 json 文件?
【发布时间】:2022-01-03 16:23:43
【问题描述】:

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

产生的错误如下

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

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

【问题讨论】:

  • 永远不要将机密上传到您的存储库。您可以为此目的定义安全 CI 变量。
  • 尽管如果有人对应用程序进行逆向工程并看到它们,风险并不大,但您不应该将它们提交到 Github,正如 Firebase 在 documentation 中提到的那样。也结帐:Is google-services.json safe from hackers?
  • @Tobi 是的,实际上它有所帮助,但没有为 github 提供正确的方法。但是现在我已经找到了解决方案:)

标签: android linux firebase github-actions github-cli


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

    我们可以将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
    
    • 然后通过Setting &gt; Secrets &gt; New Repository Secret 使用名称GOOGLE_SERVICES_JSON 在github secrets 中定义google-services.json 文件的内容

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-20
      • 2021-11-26
      • 1970-01-01
      • 2021-07-08
      • 1970-01-01
      • 2021-05-24
      • 2020-01-27
      • 2022-01-03
      相关资源
      最近更新 更多