Google Map SDK๋ฅผ ์ถ๊ฐํ๋ค๊ฐ ์๊ฒ๋ ํ๋ฌ๊ทธ์ธ์ด๋ค.
https://github.com/google/secrets-gradle-plugin
API ํค๋ฅผ ์จ๊ฒจ์ค๋ค๊ณ ํ๋๋ฐ, ์ญ์๋ ์ฑ ๋ด์ API ํค๋ฅผ ํ๋์ฝ๋ฉํ์ง ์๊ฒ ํด์ค๋ค๋ ์๋ฏธ์๋ค. ๋ฒ์ ์ปจํธ๋กค ์์ API ์จ๊น์ด๋ผ์ APK๋ฅผ ๋์ปดํ์ผํ๋ฉด API ํค๊ฐ ๋ณต์๋๋ค๊ณ Repository์ README์ ๋ถ๋ช
ํ ์ค๋ช
๋์ด ์๋ค.
์ฌ์ฉํ๊ธฐ ์ํ ์ธํ
1. ์ผ๋จ BuildConfig๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ enable ์์ผ์ผ ํ๋ค.
app์ build.gradle.kts ํ์ผ์์ BuildConfig๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ์ค์ ํ๋ค.
android {
....
buildFeatures {
...
buildConfig = true
}
}
์ฐธ๊ณ
https://daryeou.tistory.com/324
2. ํ๋ฌ๊ทธ์ธ์ ์ถ๊ฐํ๋ค.
๋๋ libs.version.toml์ dependencies ์ ๋ณด๋ค์ ๊ด๋ฆฌํ๊ณ ์๋ค. libs.version.toml์ ํด๋น dependecy ์ ๋ณด๋ค์ ๊ธฐ์ ํ๋ค.
[versions]
...
secrets-gradle-plugin = "2.0.1"
[libraries]
...
secrets-gradle-plugin = { group="com.google.android.libraries.mapsplatform.secrets-gradle-plugin", name = "secrets-gradle-plugin", version.ref = "secrets-gradle-plugin" }
[plugins]
...
secrets-gradle-plugin = { id = "com.google.android.libraries.mapsplatform.secrets-gradle-plugin" }
2-1. ํ๋ก์ ํธ root์ build.gradle.kts ํ์ผ์ ๋ค์์ ์ถ๊ฐํ๋ค.
plugins {
...
}
buildscript {
dependencies {
classpath(libs.secrets.gradle.plugin)
}
}
2-2. app์ build.gradle.kts ํ์ผ์ ๋ค์์ ์ถ๊ฐํ๋ค.
plugins {
...
alias(libs.plugins.secrets.gradle.plugin)
}
3. local.properties ํ์ผ์ API ํค๋ฅผ ์ ์ธํ๋ค.
MAP_API_KEY={APIํค๊ฐ}
4. ๋น๋ ํ ์ฌ์ฉํ๋ค.
4-1. BuildConfig๋ก ์ฌ์ฉ
BuildConfig.MAP_API_KEY
4-2. AndroidManifest์์ ์ฌ์ฉ
<meta-data android:value="${MAP_API_KEY}" />
* local.properties ํ์ผ ์ธ์ ๋ค๋ฅธ ํ์ผ์ API ํค๋ฅผ ๊ธฐ์ ํ๊ณ ์ฌ์ฉํ ์ ์๋ค.
์ฐธ๊ณ
https://github.com/google/secrets-gradle-plugin
https://medium.com/androidbytesensei/safe-your-api-keys-via-secrets-gradle-plugin-1dd9802ef2a6
๊ธฐ์กด์ local.properties ํ์ผ์ API ํค๋ฅผ ๊ธฐ์ ํ๊ณ , local.properties๋ gitignore ํ์ผ์ ๊ธฐ์ ํ ํ์, build.gradle ํ์ผ์์ BuildConfig์ local.properties ํ์ผ์ API ํค ๊ฐ์ ๊ฐ์ ธ๋ค๊ฐ ์ ์ธํด์ ์ฐ๋ ๋ฐฉ๋ฒ์ ์๊ณ ์์๋ค.
์ด Secret Gradle Plugin๋ BuildConfig์ API ํค ๊ฐ์ ์๋์ผ๋ก ์ ์ธํด์ฃผ๋ ๊ธฐ๋ฅ์ผ๋ก ๋ณด์ธ๋ค. ์ด๋ฏธ ์๊ณ ์๋ ๋ฐฉ๋ฒ๊ณผ ์ด ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ ๋ชจ๋ BuildConfig๋ฅผ ์ด์ฉํ๋ ๊ฒ์ ๋ณด๋ฉด, ๊ฒฐ๊ตญ ์๋ฆฌ๋ ๊ฐ์ ๊ฒ์ผ๋ก ๋ณด์ธ๋ค.