[안드로이드] API 키 숨기기 (최신버전)

SHY(code poet)·2024년 5월 28일
1

1. Project패널에서 .gitignore에 local.properties가 있는지 확인

다른 사람이 이 코드를 clone했을 경우, local properties에 있는 이 파일들은 clone되지 않는다.
우리는 이제 local.properties 파일에다가 api 키를 숨겨놓으면 된다.

2. local.properties 파일에서 key를 담아둔다.


나같은 경우, 쌍따옴표가 있는 경우와 없는 경우 두가지를 나누어서 설정해주었다. 만약 이 api 키를 Manifest 파일에서 사용할 경우, 쌍따옴표도 value 값으로 인식하여, 다른 값이 적용되기 때문에 없는 경우도 따로 적어준 것이다. (이것때문에 1시간을 날리게 되었으니, 다른 분들은 이런 시행착오가 없었으면 좋겠다.)

3. BuildGradle 파일 설정

local.properties 파일 로드


플러그인 밑에 이 코드를 적어서, 아까 적은 local.properties을 gradle에서도 사용할 수 있도록 로드해주자.

buildConfigField


defaultCongif단 맨 아래에 아래와 같이 type,name,value를 각각적어주자. as String이나 .toString()으로 업캐스팅을 한번 해줘야 오류가 안생길 것이다.
(이 코드를 적어준 후, Sync, rebuild를 하면 BuildConfig 클래스가 자동생성되고, 우리는 나중에 이 클래스에서 api key를 참조할 예정이다.)

buildTypes(Manifest에서 api키 사용할 경우)


map형태로 debug, release단 각각에 manifestPlaceholders 코드를 적어주자. manifest파일에서 api key를 사용할 수 있도록 해준다. 주의할 것은 여기서는 쌍따옴표가 없는 버전으로 적어줘야 한다.

4. Sync & Rebuild


리빌드하면 BuildCongif 파일이 생긴다.

5. 활용하기

colaborator일 경우, clone한 후, local property 수정


이 부분을 '제외'하고 전부 복붙해주자.

kotlin 파일에서 활용하기


와 같이 BuildConfig. 형식으로 활용하자.

manigest 파일에서 활용하기


"${}"형식으로 활용하자.

📜Reference
API 키 숨기기
manifestPlaceholders로 변수 삽입하기 (feat. Naver Map API)

profile
그것을 이해하고자 하기 때문에 결국은 그것을 견디어내게 된다.

0개의 댓글