박상권의 삽질블로그

[안드로이드/Android]Debug/Release에 따라 다른 Google API KEY 넣기 본문

IT/Android-TIP (한글)

[안드로이드/Android]Debug/Release에 따라 다른 Google API KEY 넣기

박상권 2015. 8. 28. 18:42

안드로이드 개발자들이 모여있는 오픈채팅방에 참여해보세요 .
Q&A 및 팁을 공유하는 방입니다..
오픈채팅방 참여



블로그를 Medium으로 옮겨서 운영하고 있습니다.
앞으로 새로운 글은 모두 미디엄 블로그를 통해서 올릴 예정입니다.
미디엄에서 다양하고 유익한 포스팅을 살펴보세요
미디엄 블로그 보기





구글지도나 기타의 이유로 Google의 API를 사용하는 경우가 많이 있습니다.


Google API console에서 사용하고자하는 기능을 활성화하고 API key를 받을 것입니다.



이경우 개발용 keystore와 배포용 keystore가 다르기때문에 각각 2개씩의 API KEY를 발급 받아야 합니다.

보통 Manifest파일에 아래와같이 선언하실겁니다.



<!-- 개발용 KEY -->
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="개발용 KEY" />


<!-- 배포용 KEY -->
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="배포용 KEY" />


개발중일경우는 배포용 KEY 코드부분을 주석하고 테스트를 하고 배포 할때는 개발용 KEY 코드부분을 주석처리하고 배포하는 식으로 운영합니다.


그런데 만약 깜박하고 배포할때 배포용KEY가 아닌 개발용KEY로 배포해버린다면 실제 서비스에서는 지도나 기타 기능들을 사용할 수가 없습니다..

개발/배포 버전에 따라 항상 주석을 만들었다가 없앴다가를 반복해주어야 합니다.





Android Studio에서 build.gradle의 buildTypes를 이용해 위와같은 번거로운 작업없이 개발/배포 버전에 맞게 API KEY를 설정하는 방법을 포스팅 해보겠습니다.



Debug / Release 모드에 따른 API KEY 설정방법



1. build.gradle의 buildTypes에 아래와 같이 선언해줍니다.


buildTypes {

debug {

// 개발용 KEY
resValue "string", "google_maps_api_key", "개발용 API KEY"
}

release {
// 배포용 KEY
resValue "string", "google_maps_api_key", "배포용 API KEY"
}
}



2. AndroidManifest.xml 에서 아래와 같이 적어줍니다.

google_maps_api_key라는 변수를 참조하게되는데 이는 debug/release 모드에따라서 각각 다른 key가 들어가게 될것입니다.


<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="@string/google_maps_api_key"/>





1,2번의 방법으로 간단하게 설정해주면 Debug/Release버전에 따라 API KEY를 설정해주어야하는 번거로움을 피할 수 있습니다.

이 외에도 개발/배포버전에 따라 각각 다른 설정값이 들어가야 하는경우는 build.gradle에 각각 값들을 지정해주면 Debug/Release 에 따라 다르게 값이 입력되도록 지정할 수 있습니다.




Comments