local.properties
는 안드로이드에 의해 기본 생성되는 파일 중 하나로, 기본적으로 SDK의 위치가 이곳에 적혀있습니다.
SDK가 위치한 경로는 사용자마다 다를 수 밖에 없기에 이 파일은 기본적으로 gitignore에 포함되어있습니다.
기본적으로 생성되고, 깃에 올라가지 않는 만큼 원래 목적은 아니지만 Key를 저장하기에 꽤 적합합니다. 이번에는 그 사용법을 적어보려합니다.
local.properties
파일에 기존 내용 아래에 key를 적어 넣습니다.
//sdk.dir=~~~~ 아래
api_key=Your Key
가령 키가 123이라면 api_key=123
이렇게 적어넣으면 됩니다.
프로터피에 값을 넣었으니 이제 사용할 수 있도록 먼저 프로퍼티를 가져와야합니다.
build.gradle -> android
위쪽에 아래와 같이 두줄을 적어 넣습니다.
def properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
//android { 기존 내용...
프로퍼티 객체를 만들고 local.properties
의 값을 읽어들여오는 것 입니다.
이제 properties["api_key"]
로 키에 접근할 수 있게 되었습니다.
하지만 지금은 gradle에서만 접근 가능합니다.
build.gradle -> android -> buildFeatures
에 내용을 추가합니다.
buildFeatures {
/*기존 내용*/
buildConfig true
}
저희가 buildConfig
를 추가로 정의해서 사용할 것이기에 사용한다고 적어줍니다.
manifest파일에서 사용할 수 있도록합니다.
build.gradle -> android -> defaultConfig
에 내용을 추가합니다.
defaultConfig {
/*기존 내용*/
manifestPlaceholders = [APP_KEY: properties["api_key"]]
}
위와 같이 적으면 manifest파일에서 APP_KEY
라는 이름으로 키에 접근할 수 있습니다.
android:value="${APP_KEY}"
일반적으로 코드를 치면서 사용할 수 있도록합니다.
build.gradle -> android -> defaultConfig
에 내용을 추가합니다.
defaultConfig {
/*기존 내용*/
buildConfigField "String", "API_KEY", "\"${properties["api_key"]}\""
}
위와 같이 적으면 BuildConfig라는 파일안에 String형의 API_KEY라는 이름을 가지는 상수가 생깁니다.
값은 local.properties에 적었던 키값를 지닙니다.
이제 코드를 치면서 상수가 필요하다면 buildConfig.API_KEY
로 키에 접근 할 수 있습니다.
val key = buildConfig.API_KEY