통신하는 서버 주소나 API Key와 같은 정보들은 팀원 이외에게는 노출되어선 안 되는 민감한 정보이다.
따라서 그 값을 소스 코드에 그대로 노출시키지 않고 안전하게 숨겨야 할 필요가 있다.
처음 local.properties 퍄일을 열면 SDK 경로가 적혀있는데, 그 아래에 내가 사용할 API Key값을 정의해준다.
// local.properties
sdk.dir = SDK 경로
API_KEY = "API Key 값"
local.properties는 기본적으로 gitignore로 설정되어 있어 GitHub에 올라가지 않는다.
build.gradle(:app)을 다음과 같이 수정해줍니다.
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
android {
...
defaultConfig {
...
buildConfigField "String", "API_KEY", properties["API_KEY"]
}
}
build.gradle.kts(:app)을 다음과 같이 수정해서 local.properties의 변수를 불러온다. 그리고 localProperties.getProperty를 호출해서 API Key를 가져올 수 있다. 또는 getApiKey라는 함수를 만들어 local.properties의 변수를 불러오도록 할 수 있다.
import com.android.build.gradle.internal.cxx.configure.gradleLocalProperties
android {
...
defaultConfig {
...
buildConfigField("String", "API_KEY", localProperties.getProperty("API_KEY"))
}
}
fun getApiKey(propertyKey: String): String {
return gradleLocalProperties(rootDir).getProperty(propertyKey)
}
②-1과 ②-2 둘 다 BuildConfig에 추가해주는 방법이다.