如何使用 Google 服务 Gradle 插件在 Circle CI 上测试 android 应用程序
How to test android application on Circle CI with Google Services Gradle Plugin
我正在使用 Google 服务 Gradle 插件开发 android 应用程序(Firebase 需要它),插件需要 google-services.json.
我认为 json 文件不应该在 git 的控制之下,因为它有一些应该隐藏的值(例如 api_key),但是 Circle CI需要那个。
如果google-services.json可以查找环境变量,问题就可以解决。(值隐藏在git存储库中,Circle CI可以从中获取值环境变量)。
但是,我找不到从 google-services.json.
查找环境变量的机制
我有三个问题。
1) VCS 真的应该忽略 google-services.json 吗?
2) Google Services Gradle Plugin是否有从google-services.json查找环境变量的机制?
3) 是否有其他方法从 Circle CI?
引用 google-services.json
1) 是的,它应该 - 它包含敏感信息,例如您的 API 密钥。
2) 我不这么认为
3) 您可以使用与 https://circleci.com/docs/2.0/google-auth/
中类似的方法
- 用 base64 编码你的 google-services.json。确保从编码字符串
中删除所有空格
- 把它放到 Circle 的项目设置中的环境变量中 CI(我把它命名为 GOOGLE_SERVICES)
在您的 circle.yml 中将此变量解码为您应用程序目录中的 google-services.json 文件。就我而言,我使用
echo $GOOGLE_SERVICES | base64 --decode > ~/${HOME}/app/google-services.json
我正在使用 Google 服务 Gradle 插件开发 android 应用程序(Firebase 需要它),插件需要 google-services.json.
我认为 json 文件不应该在 git 的控制之下,因为它有一些应该隐藏的值(例如 api_key),但是 Circle CI需要那个。
如果google-services.json可以查找环境变量,问题就可以解决。(值隐藏在git存储库中,Circle CI可以从中获取值环境变量)。
但是,我找不到从 google-services.json.
我有三个问题。
1) VCS 真的应该忽略 google-services.json 吗?
2) Google Services Gradle Plugin是否有从google-services.json查找环境变量的机制?
3) 是否有其他方法从 Circle CI?
1) 是的,它应该 - 它包含敏感信息,例如您的 API 密钥。
2) 我不这么认为
3) 您可以使用与 https://circleci.com/docs/2.0/google-auth/
中类似的方法- 用 base64 编码你的 google-services.json。确保从编码字符串 中删除所有空格
- 把它放到 Circle 的项目设置中的环境变量中 CI(我把它命名为 GOOGLE_SERVICES)
在您的 circle.yml 中将此变量解码为您应用程序目录中的 google-services.json 文件。就我而言,我使用
echo $GOOGLE_SERVICES | base64 --decode > ~/${HOME}/app/google-services.json