본문 바로가기

Kotlin/안드로이드 공부

local.properties이용해서 API KEY 숨기기

728x90

gitignore가 잘 안되서

local.properties에 넣는 방법을 사용.

(이미 gitignore에 있기 때문에 적당한 편법이랄까..)

 

100% 이해한 건 아니라서 전혀 논리정연하지 않지만 미래의 나를 위해 일단 기록....

 

 

1. local.properties 파일에 숨길 api key 직접 적기

api_key_name="api_key_내용"

 

근데 따옴표를 붙여야 하는지 아닌지는 잘 모르겠다 ㅠ 

googlemap api에서는 안붙이고 했는데

openweather는 붙여야만 되더라... 내일 구글맵 잘 돌아가는지 다시 봐야할듯

 

.  (가장 상위에 있는) app수준의 gradle에 코드 추가

Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
def googleMapApiKey = properties.getProperty('api_key_name')

 

. 같은 gradle의 anroid{ defaultConfig { 여기에 코드 추가 } }

3-1. manifestPlaceholders = [키이름:googleMapApiKey]

 

두 개가 어떻게 다른진 정확히 모르겠고

구글맵은 매니페스트 파일에 추가해주기 떄문에 manifestPlaceholder를 사용.....?

(키,값) 으로 저장되어 매니페스트에서 사용이 가능했다.


3-2. buildConfigField "String", "API_KEY", properties['openweather.key']

얘는 빌드하면 buildConfig에 string값으로 추가되더라

그래서 1번에서 api key내용에 따옴표가 없으면 아예 빌드 실패했음

 

. 저장한 값 사용하기

4-1. 구글 API를 예시로 들자면

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

 

4-2. 그냥 원하는 코드에서

BuildConfig.API_KEY 이렇게 불러서 사용함!

 

 

 

 

 

 

 

참고했던 사이트들.. 나에게 동작하는 것도 있고 아닌 것도 있었음

https://pyxispub.uzuki.live/?p=1020

https://busy.org/@etainclub/google-map-api-key

https://gist.github.com/ramonaharrison/7a2061bf5ee920dfff53b37ed83520ec

 

'Kotlin > 안드로이드 공부' 카테고리의 다른 글

카카오지도api 시작하기  (0) 2020.09.07
네이버 지도 연결  (0) 2020.09.07
kotlin - unresolved reference 갑자기 오류 뜰 때  (0) 2020.07.02
editText 텍스트 변경 감지  (0) 2020.06.19
fcm  (0) 2020.06.14