다른 사람이 이 코드를 clone했을 경우, local properties에 있는 이 파일들은 clone되지 않는다.
우리는 이제 local.properties 파일에다가 api 키를 숨겨놓으면 된다.
나같은 경우, 쌍따옴표가 있는 경우와 없는 경우 두가지를 나누어서 설정해주었다. 만약 이 api 키를 Manifest 파일에서 사용할 경우, 쌍따옴표도 value 값으로 인식하여, 다른 값이 적용되기 때문에 없는 경우도 따로 적어준 것이다. (이것때문에 1시간을 날리게 되었으니, 다른 분들은 이런 시행착오가 없었으면 좋겠다.)
플러그인 밑에 이 코드를 적어서, 아까 적은 local.properties을 gradle에서도 사용할 수 있도록 로드해주자.
defaultCongif단 맨 아래에 아래와 같이 type,name,value를 각각적어주자. as String이나 .toString()으로 업캐스팅을 한번 해줘야 오류가 안생길 것이다.
(이 코드를 적어준 후, Sync, rebuild를 하면 BuildConfig 클래스가 자동생성되고, 우리는 나중에 이 클래스에서 api key를 참조할 예정이다.)
map형태로 debug, release단 각각에 manifestPlaceholders 코드를 적어주자. manifest파일에서 api key를 사용할 수 있도록 해준다. 주의할 것은 여기서는 쌍따옴표가 없는 버전으로 적어줘야 한다.
리빌드하면 BuildCongif 파일이 생긴다.
이 부분을 '제외'하고 전부 복붙해주자.
와 같이 BuildConfig. 형식으로 활용하자.
"${}"형식으로 활용하자.
📜Reference
API 키 숨기기
manifestPlaceholders로 변수 삽입하기 (feat. Naver Map API)