Google services json file for github actions?
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文件中,可以成功构建应用程序。
添加任何类型的凭据到GitHub仓库是危险和不明智的。即使仓库是私有的,现在只有你在使用,也许以后你会邀请其他人,除非你改变git历史,否则你的凭据将始终可访问,即使你通过新的提交将其删除。
相反,将您的凭据(在这种情况下是google-services.json
)放在GitHub Action secret中,并从CI文件中读取该secret。GitHub secrets是存储此信息的好地方,因为只有您运行的操作才能读取它们,而其他仓库成员则不能。
- 在本地计算机上将文件编码为base64,以便可以轻松地存储在环境变量中:
base64 google-services.json
- 将输出复制并存储在新的GitHub Action secret中(可以在存储库的设置选项卡中找到),命名为
GOOGLE_SERVICES_JSON
- 在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 > ./
<folder>
是您构建所需的任何文件夹。在我的Action中,我尝试构建一个Android APK,所以我的路径是./android/app/google-services.json
。此外,根据您的路径,您可能需要首先创建该目录:run: mkdir
base64 -di
解码编码的文件,并且还会去除“垃圾”字符,例如可能在将原始编码文件复制到Action secret时带来的换行符。