[Android] local.properties를 통해 API key 안전하게 보관하기

thsamajiki·2024년 3월 28일
0

Android

목록 보기
4/5

통신하는 서버 주소나 API Key와 같은 정보들은 팀원 이외에게는 노출되어선 안 되는 민감한 정보이다.

따라서 그 값을 소스 코드에 그대로 노출시키지 않고 안전하게 숨겨야 할 필요가 있다.

local.properties를 통해 값 숨기기

① local.properties 파일에 값을 저장하기

처음 local.properties 퍄일을 열면 SDK 경로가 적혀있는데, 그 아래에 내가 사용할 API Key값을 정의해준다.

// local.properties

sdk.dir = SDK 경로

API_KEY = "API Key 값"

local.properties는 기본적으로 gitignore로 설정되어 있어 GitHub에 올라가지 않는다.

②-1 Groovy 사용하는 경우

build.gradle(:app)을 다음과 같이 수정해줍니다.

Properties properties = new Properties() 
properties.load(project.rootProject.file('local.properties').newDataInputStream()) 

android {

	... 

	defaultConfig {
    
    	... 
        
        buildConfigField "String", "API_KEY", properties["API_KEY"] 
        
        } 
 }

②-2 Kotlin-DSL 사용하는 경우

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에 추가해주는 방법이다.

profile
안드로이드 개발자

0개의 댓글