Android & Kotlin

Hiding API Keys

CodingTrader 2021. 4. 22. 12:27
728x90

안드로이드 앱을 개발하다 보면 API Key를 AndroidManifest.xml 에 적어야 하는 경우가 있는데,

해당 API Key를 변수로써 이용하는 방법을 써보았다.

 

1. local.properties 를 열어서

 

MAPS_API_KEY=YOUR_API_KEY <- 이런식으로 이용하고자 하는 API 키를 변수에 저장해준다. (안드로이드의 경우 local.properties가 .gitignore에 설정 되어 있기에 따로 .gitignore를 설정할 필요는 없다. )

 

2. 그 다음 build.gradle  (~~~.app 으로 되어있는) defaultConfig 요소에

해당 코드를 추가한다.

 

defaultConfig {

Properties properties = new Properties()
        if (rootProject.file("local.properties").exists()) {
            properties.load(rootProject.file("local.properties").newDataInputStream())
        }

        // Inject the Maps API key into the manifest
        manifestPlaceholders = [ mapsApiKey : properties.getProperty("MAPS_API_KEY", "") ]

}

 

위 코드에서 mapsApiKey 는 내가 사용하고자 하는 이름이 될 것이고, getProperty() 에서의 MAPS_API_KEY 는 맨 처음 설정했던 local.properties 에서의 api key를 저장한 변수명을 넣어줘야 한다.

 

3. 마지막으로 AndroidManifest.xml 에서

 

<meta-data
   
android:name="com.google.android.geo.API_KEY"
   
android:value="${mapsApiKey}" />

 

이런 형식으로 android:value="${build.gradle에서의 사용하고자 하는 이름}" 사용해주면 된다.

이런 방식을 이용해서 github에 코드를 올리면, 자신이 발급받은 API_KEYS 값 들을 확인할 수 없다.


   

 

 

728x90