0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

秘匿情報を gradle.properties で管理する

Last updated at Posted at 2024-07-02

目的

外部 Webサービスの APIキーなどをソースコード中に入れておくと、うっかり githubへ pushしたときなどに悲惨なことになる。 大事な情報は gitignoreしたファイルで管理し、ビルド時にそれを参照するようにすると安全。

方法

app/gradle.propertiesを作成

API KEYなど重要な情報を管理するファイル。 このファイルは .gitignoreに追加して gitの管理外にしておく。

gradle.properties
API_KEY="xxxxxxxxxx"

app/build.gradle.kts

build.gradle.kts
android {
    defaultConfig {
        buildConfigField("String", "SECRET_API_KEY", project.properties["API_KEY"] as String) // 追加
    }

    buildFeatures {
        buildConfig = true  // 追加
    }

BuildConfigがデフォルトで作られなくなっているので buildConfig = true を設定する。

コード中での利用

buildConfigFieldで宣言した値はコード中で BuildConfig.SECRET_API_KEY のように参照できる。

Constants.kt
const val SECRET_API_KEY = BuildConfig.SECRET_API_KEY

気になったこと

いつから buildConfig = false が標準になったのだろう 🤔 と思って調べたところ以下の記事があった

BuildFeatures.ktを見るとbuildConfigのデフォルト値がfalseになっていた。 Androidの公式サイトのドキュメントはtrueのままだったが、今後更新されるのかもしれない。

今後はあまり推奨される方法ではないのかもしれない。 そのときはそのときで別の方法を調べる。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?