[Android] API 키 숨기기

Hand·2022년 8월 3일
0

Android

목록 보기
8/17

💡 개발을 하면서 민감한 정보들에 대해서 사용을 하신적이 있을겁니다. 예를들어 구글 API 사용을 위한 Client_id 등등이 있습니다. 우리는 깃을 통해 프로젝트를 관리하지만, 이러한 민감한 정보의 경우 숨겨줄 필요가 있습니다.

.gitignore

처음 프로젝트를 생성했을 때, Project 단의 gitignore 파일을 확인할 수 있습니다.
gitignore

여기서 우리는 깃에 업로드가 안되는 항목들을 확인할 수 있습니다. (필요의 경우 추가하여 깃에 업로드를 막을 수 있습니다.)

local.properties, /build 의 경우 무시하는 것을 볼 수 있습니다.

local.properties

project 단의 local.properties를 확인하면 sdk.dir 말고는 아무 정보도 있지 않습니다.

우리는 여기에 데이터를 담고 사용할 것입니다.

local.properties

이렇게 작성을 완료했으면, local.properties에서의 작업은 완료되었습니다.

build.gradle(app)

app단의 build.gradle에 정보를 추가해줍시다.

build.gradle

Properties properties = new Properties()

properties.load(project.rootProject.file('local.properties').newDataInputStream())

그리고 android 내부의 defaultConfig에
buildConfigField "String", "API_KEY", properties['api_key']를 추가해주었습니다.

이렇게 추가를 해준 후, 상단의 Sync now를 눌러주시면, Build가 진행되는 것을 확인할 수 있습니다.

그리고 프로젝트를 한번 실행시켜줍니다.

그렇게 되면 build.gradle에 있는 정보를 토대로 실행하게 되고, local.properties를 바탕으로 BuildConfig 내에 정보를 기록하게 됩니다.

BuildConfig

😵 방금 기록하면서 알게된 내용인데, 한글은 깨집니다!!
어차피 저장할 api_key들의 경우 영어로 되어 있을 것이기에 편의를 위한 사진이라고 생각해주세요.

이렇게 BuildConfig 내에 잘 위치한 모습을 볼 수 있습니다.

사용법

자 이렇게 저장한 key들을 사용하는 법은 간단합니다.
val api_key = "$BuildConfig.API_KEY}"
이런 식으로 사용하면 됩니다.

이렇게 숨기고 싶은 항목을 가리는 방법에 대해서 알아보았습니다.

주의사항

협업을 할 때, 깃을 통해 프로젝트를 관리하는 경우, 깃에는 업로드 되지 않는 내용들이기에 따로 key들을 전달해줄 필요가 있습니다!!

profile
화이팅!

0개의 댓글