ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Android Studio - Google Map API 협업 / Git에 업로드
    Android Studio 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옆에 뜨는 일련의 숫자들을 복붙해서 항목추가에 패키지명과 함께 넣어주면 된다. 이 방법으로 하니까 팀원의 작업환경에서도, 내 작업환경에서도 빈 화면이 뜨지않고 잘 해결이 되었다. (확대 축소도 매우 잘 된다!!)

     

Designed by Tistory.