Google Map SDK๋ฅผ ์ถ๊ฐํ๋ค๊ฐ ์๊ฒ๋ ํ๋ฌ๊ทธ์ธ์ด๋ค.
https://github.com/google/secrets-gradle-plugin
GitHub - google/secrets-gradle-plugin: A Gradle plugin for providing your secrets to your Android project.
A Gradle plugin for providing your secrets to your Android project. - google/secrets-gradle-plugin
github.com
API ํค๋ฅผ ์จ๊ฒจ์ค๋ค๊ณ ํ๋๋ฐ, ์ญ์๋ ์ฑ ๋ด์ API ํค๋ฅผ ํ๋์ฝ๋ฉํ์ง ์๊ฒ ํด์ค๋ค๋ ์๋ฏธ์๋ค. ๋ฒ์ ์ปจํธ๋กค ์์ API ์จ๊น์ด๋ผ์ APK๋ฅผ ๋์ปดํ์ผํ๋ฉด API ํค๊ฐ ๋ณต์๋๋ค๊ณ Repository์ README์ ๋ถ๋ช
ํ ์ค๋ช
๋์ด ์๋ค.
์ฌ์ฉํ๊ธฐ ์ํ ์ธํ
1. ์ผ๋จ BuildConfig๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ enable ์์ผ์ผ ํ๋ค.
app์ build.gradle.kts ํ์ผ์์ BuildConfig๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ์ค์ ํ๋ค.
android {
....
buildFeatures {
...
buildConfig = true
}
}
์ฐธ๊ณ
https://daryeou.tistory.com/324
[Gradle] AGP 8.0์์ BuildConfig ์ฌ์ฉ ์ ์๋ฌ
๋ฉํฐ๋ชจ๋์์ BuildConfig๋ฅผ buildType๋ณ๋ก ๋ค๋ฅด๊ฒ ํ๊ธฐ ์ํด ํด๋น ๋ชจ๋ build.gradle ํ์ผ์ ์๋์ ๊ฐ์ด ์์ฑํ์๋ค. android { namespace 'com.app.xxxx' compileSdk 33 defaultConfig { minSdk 21 targetSdk 33 testInstrumentationRunn
daryeou.tistory.com
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
GitHub - google/secrets-gradle-plugin: A Gradle plugin for providing your secrets to your Android project.
A Gradle plugin for providing your secrets to your Android project. - google/secrets-gradle-plugin
github.com
https://medium.com/androidbytesensei/safe-your-api-keys-via-secrets-gradle-plugin-1dd9802ef2a6
Safe your API Keys via Secrets Gradle plugin
Where should I start about hiding the API keys? It has been coming for a long time that we Android developers try to hide the key byโฆ
medium.com
๊ธฐ์กด์ local.properties ํ์ผ์ API ํค๋ฅผ ๊ธฐ์ ํ๊ณ , local.properties๋ gitignore ํ์ผ์ ๊ธฐ์ ํ ํ์, build.gradle ํ์ผ์์ BuildConfig์ local.properties ํ์ผ์ API ํค ๊ฐ์ ๊ฐ์ ธ๋ค๊ฐ ์ ์ธํด์ ์ฐ๋ ๋ฐฉ๋ฒ์ ์๊ณ ์์๋ค.
์ด Secret Gradle Plugin๋ BuildConfig์ API ํค ๊ฐ์ ์๋์ผ๋ก ์ ์ธํด์ฃผ๋ ๊ธฐ๋ฅ์ผ๋ก ๋ณด์ธ๋ค. ์ด๋ฏธ ์๊ณ ์๋ ๋ฐฉ๋ฒ๊ณผ ์ด ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ ๋ชจ๋ BuildConfig๋ฅผ ์ด์ฉํ๋ ๊ฒ์ ๋ณด๋ฉด, ๊ฒฐ๊ตญ ์๋ฆฌ๋ ๊ฐ์ ๊ฒ์ผ๋ก ๋ณด์ธ๋ค.