06
26

https://kimmandooo.tistory.com/5

 

API키 숨기기 - local.properties와 gradle로 설정하기(AGP 8.0이상)

이 글은 Kotlin DSL - KTS에서 gradle에 manifest, buildconfig변수를 설정하는 방법에 대해 적혀있으므로 groovy 기반이라면 도움이 안될 수 있다. local.properties에 이미 값을 적었다고 가정하겠다. KAKAO_NATIVE_APP

kimmandooo.tistory.com

이때 한번 작성을 한 적이 있는 데 오랜만에 프로젝트 생성해서 보니 필요한 파라미터가 하나 더 생겼다.

`providers`인데, 이거까지 고려한 코드는 아래처럼 바뀐다.

fun getApiKey(propertyKey: String): String {
    return gradleLocalProperties(rootDir, providers).getProperty(propertyKey)
}

providers라고 그냥 적으면 알아서 getter인 getProvider를 호출해 ProviderFactory의 기본 인스턴스가 들어가서 무리없게 실행된다. 이게 추가된 이유는 단순히 gradle 버전이 올라가면서 권장 조건이 추가되었기 때문이다. 

 

Provider를 사용하는 방법이 좀 더 유연한 처리방식이라고 해서 권장방식으로 채택되었다고한다...

 

위 코드는 local.properties에서 값을 긁어오는 방식이고, 다른 property를 직접 만들어서 가져오고 싶으면 아래처럼 만들어서 사용하면 된다.

fun getApiKeyWithProvider(propertyKey: String): String {
    val propertyProvider = providers.gradleProperty(propertyKey)
    return propertyProvider.orNull ?: throw IllegalArgumentException("${propertyKey} not found")
}

gradleProperty에서 동적으로 가져오는 코드다.

 

도움이 됐다면 댓글이나 공감 버튼 한 번씩 누르고 가주세요!

 

반응형
COMMENT