Posted at

Bitrise で google_services.json を扱う

毎回 google_services.json を扱うプロジェクトを Bitrise に載せる時に忘れているので記録まで。初めて扱う人の参考にもなれば。

google_services.json は一般的に .gitignore に記述して git にコミットしないので、CI で Lint を掛けるとコケます。Bitrise の場合はワークフローにファイルを生成するステップを追加できるのでそこで google_services.json を生成するようにして回避します。



  • Secrets に変数を定義して google_services.json の中身を保存します(青く記述されている部分に登録するシークレットの中身は、Expose for Pull Request を有効にしない限り安全である旨書かれています)。ここでは GOOGLE_SERVICES_JSON と云う名前の変数を定義しています。

bitrise_secret.png



  • WorkflowsAndroid Lint の前に Generate Text File のステップを追加します。File Name はプロジェクトに合わせて変更する必要があります。このプロジェクトでは app/ 以下に google_services.json を置いてあるので app/google_services.json のパスでファイルを生成します。ファイルの中身は Insert Variable で先に定義したシークレットを選択します。

bitrise_workflow.png

bitrise.yaml にもちゃんとステップが追加されています。

- generate-text-file@0.1.0:

inputs:
- file_content: "$GOOGLE_SERVICES_JSON"
- file_name: app/google-services.json

これで Lint でコケることなくビルドを通すことができます。