web-dev-qa-db-ja.com

google-services.jsonは機密ですか?

Androidアプリ( https://developers.google.com/analytics/devguides/collection/Android/v4/ )でのGoogleアナリティクスの設定に関するガイドに従うこのgoogle-services.jsonファイルをソースコードのバージョン管理に安全にコミットして公開GitHubリポジトリにプッシュできるかどうか、またはこのファイルに資格情報やシークレットが含まれている可能性があるかどうか疑問に思っています。

他の場所で明確な答えを見つけることはできませんが、サンプルアプリの両方がファイルをコミットしていることがわかります( https://github.com/google/climb-tracker/blob/master/mobile/google-services.json )などがファイルを.gitignoreに追加しました。

27
kraenhansen

それは機密と見なされるべきです。生成されるjsonファイルには、プッシュ通知の送信に使用できるapi_keyが含まれています。

Google Developer Consoleの[認証情報]ページに移動すると、API keysの下にリストされているjsonファイルにキーが表示されます。

7
tahnok

this postから、このファイルを安全に保つ本当の理由はないようです。とにかくデータはAPKにあります。

12
Yaron

はい。少なくともapi_keystuffは秘密にしておく必要があります。

google-services.jsonをパブリックリポジトリに入れて機密を保持する1つの方法は、 BlackBox を使用することです。

アプリレベルでbuild.gradleコピータスクをたとえばdefaultConfigに次のように配置します。

defaultConfig {
    ...
    ...
    copy {
        from "../secret/"
        into "."
        include "*.json"
    }
}

これにより、ファイルがsecret/フォルダーから適切な場所にコピーされます。

これで、アプリをビルドするには、初めてリポジトリをチェックアウトするときにblackbox_edit_start google-services.json.gpgを実行する必要があります。その後は、問題ありません。

4
Espen Riskedal