[Android] Secrets Gradle Plugin for Android
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를 이용하는 것을 보면, 결국 원리는 같은 것으로 보인다.