Google services json file for github actions?

8 浏览
0 Comments

Google services json file for github actions?

我目前正在开发一个安卓项目,并使用github action来测试项目。但每次构建时都会出现找不到google-services.json文件的错误。生成的错误如下:

文件google-services.json丢失。Google服务插件无法正常工作。

现在,我不想将google-services.json文件提交或上传到github。所以,有没有其他解决办法?

0
0 Comments

Google services json file for github actions的出现原因是为了在构建应用程序之前将github secrets中的数据放入json文件中,以确保应用程序能够成功构建。解决方法是通过在github actions中执行一些命令来创建和填充google-services.json文件。

首先,在步骤一中,通过将google-services.json文件的内容以base64格式存储在环境变量中,创建google-services.json文件。

然后,在步骤二中,将github secrets中的数据放入文件中。通过获取github secrets中的数据,并将其放入json文件中。

最后,在步骤三中,通过在github secrets中定义google-services.json文件的内容,以确保文件被正确创建。

需要注意的是,这些命令应该在gradle build命令之前执行。通过这样的操作,google-services.json文件将被成功创建,并包含所需的数据,从而使应用程序能够成功构建。

将google-services.json文件内容转换为base64的目的是为了在不同系统之间保留数据,以避免特殊字符和转义等问题。

如果遇到"No such file or directory"错误,需要检查路径是否正确,特别是是否缺少android文件夹。

总结起来,通过在github actions中执行命令,将github secrets中的数据放入google-services.json文件中,可以成功构建应用程序。

0
0 Comments

添加任何类型的凭据到GitHub仓库是危险和不明智的。即使仓库是私有的,现在只有你在使用,也许以后你会邀请其他人,除非你改变git历史,否则你的凭据将始终可访问,即使你通过新的提交将其删除。

相反,将您的凭据(在这种情况下是google-services.json)放在GitHub Action secret中,并从CI文件中读取该secret。GitHub secrets是存储此信息的好地方,因为只有您运行的操作才能读取它们,而其他仓库成员则不能。

  1. 在本地计算机上将文件编码为base64,以便可以轻松地存储在环境变量中:

    base64 google-services.json

  2. 将输出复制并存储在新的GitHub Action secret中(可以在存储库的设置选项卡中找到),命名为GOOGLE_SERVICES_JSON
  3. 在GitHub Action的yml中,在构建之前添加这一步骤,该步骤将编码的文件添加到环境变量中,然后解码并将其添加到Action的工作目录中:

- name: Create Google Services JSON File

env:

GOOGLE_SERVICES_JSON: ${{ secrets.GOOGLE_SERVICES_JSON }}

run: echo $GOOGLE_SERVICES_JSON | base64 -di > .//google-services.json

<folder>是您构建所需的任何文件夹。在我的Action中,我尝试构建一个Android APK,所以我的路径是./android/app/google-services.json。此外,根据您的路径,您可能需要首先创建该目录:run: mkdir && echo $GOOGLE_SERVICES_JSON | base64 -di > .//google-services.json

base64 -di解码编码的文件,并且还会去除“垃圾”字符,例如可能在将原始编码文件复制到Action secret时带来的换行符。

0
0 Comments

在公共存储库或示例应用程序中,不应将google-services.json文件提交到Github存储库中。对于私有存储库,取决于协作者如何管理Firebase凭据。 google-services.json文件将包含Firebase项目的访问密钥和指纹。

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

0