Android Studio

Android Studio - Google Map API 협업 / Git에 업로드

Bubbles 2021. 2. 1. 02:38

이 포스팅에서는 Android Studio에서 사용한 Google Map API 키를 Git에 올라가지 않게끔 처리하는 방법과 어떻게 팀원과 API Key를 공유했는지 작성하려 한다. 물론 이게 정답일지는 모르겠는데, 못 찾겠어서 일단 성공한 방법을 까먹기 전에 기록해두고자 쓰는 포스팅이다.. 

 

첫번째로,  Git에 올라가지 않게끔 하는 방법으로 Local Properties를 이용한다. 

local.properties위치

이 파일에는 사용자의 sdk주소만 처음에 적혀있다. 

## This file is automatically generated by Android Studio.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file should *NOT* be checked into Version Control Systems,
# as it contains information specific to your local configuration.
#
# Location of the SDK. This is only used by Gradle.
# For customization when using a Version Control System, please read the
# header note.
sdk.dir= /*본인의 sdk경로*/

.gitignore파일을 확인해보면 /local.properties라고 적혀있다. 

즉 이 파일은 git에 올라가지 않는다. 따라서 api.key값을 이 파일에 적어둔다. (sdk.dir 밑줄에 추가)

api.key="따옴표 사이에 자기 api키 입력"

그리고 app level의 build.gradle파일에 들어간다(이 파일은 git에 올라감)

첫번째로, android {.....}이 위에다가 다음과 같이 입력해준다. (local.properties파일에서 받아온다는 뜻)

Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())

build.gradle파일의 defaultConfig를 확인해보면, 

defaultConfig {
        applicationId /*개인 파일 명*/
        minSdkVersion 15
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        /* 이 위치에 추가*/
    }

이렇게 되어있다. 저 /*이 위치에 추가*/ 이부분에 다음 코드를 추가하면 된다.

BuildConfigField("String", "본인이 정한 키 이름", properties.getProperty("api.key"))

아까 local.properties를 properties로 받아와서, local.properties에 정의해둔 api.key라는 변수를 가져오는 역할이다..

본인이 정한 키 이름은 사용하는 사람 임의로 정하면 될 것 같다. 

 

그러고 나서 AndroidManifest.xml파일로 들어간다. 

application태그가 끝나기 전, activity태그 밑에 다음 코드를 추가해준다. 

<meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value="app.BuildConfig.본인이 정한 키 이름"/>

원래 android:value값에 그대로 자기가 받아온 GoogleMapAPI 키를 넣어도 돌아가지만, AndroidManifest.xml파일은 Git에 올라가기 때문에 여기다 그대로 자신의 키 값을 넣으면 안된다. 따라서 이 방법으로 Git에 본인의 api키 값이 올라가는 것을 막을 수 있다. 

 


그 뒤, api 키를 공유하기 위해 API - 사용자 인증 정보탭에 들어간다. 

사용자 인증정보에 들어가면 본인의 API 키 목록이 있다. 

해당 API를 클릭하고, 아래 사진의 항목을 확인한다. 

Android앱의 사용량 제한 탭에서는 패키지이름, SHA-1서명 인증서 디지털 지문을 추가함으로써 사용을 제한할 수 있다. 나의 경우는 api key를 함께 작업하는 팀원에게 알려주고 팀원의 SHA-1정보를 받아서 추가해주었다. 

참고로 SHA-1정보는 Window운영체제 기준 cmd창에 다음 명령어를 입력하면 나온다. 

keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

아마 SHA1과 SHA256이 나오는데 SHA1옆에 뜨는 일련의 숫자들을 복붙해서 항목추가에 패키지명과 함께 넣어주면 된다. 이 방법으로 하니까 팀원의 작업환경에서도, 내 작업환경에서도 빈 화면이 뜨지않고 잘 해결이 되었다. (확대 축소도 매우 잘 된다!!)