API 키 가져오기

시작하기 전에

Android용 Maps SDK를 사용하려면 결제 계정이 있고 Android용 Maps SDK가 사용 설정된 프로젝트가 필요합니다. 자세한 내용은 Google Maps Platform 시작하기를 참고하세요.

API 키 만들기

API 키는 사용 및 결제 목적으로 프로젝트와 관련된 요청을 인증하는 고유 식별자입니다. 프로젝트에 연결된 API 키가 하나 이상 있어야 합니다.

API 키를 만들려면 다음 단계를 따르세요.

  1. Cloud Console의 프로젝트 선택기 페이지에서 API 키를 추가할 Google Cloud 프로젝트를 선택하거나 만듭니다.

    프로젝트 선택기 페이지로 이동

  2. API 및 서비스 > 사용자 인증 정보 페이지로 이동합니다.

    사용자 인증 정보 페이지로 이동

  3. 사용자 인증 정보 페이지에서 사용자 인증 정보 만들기 > API 키를 클릭합니다.
    API 키 생성 완료 대화상자에 새로 만든 API 키가 표시됩니다.
  4. 닫기를 클릭합니다.
    새 API 키는 사용자 인증 정보 페이지의 API 키 아래 나열됩니다.
    (프로덕션에 사용하기 전에 API 키에 제한을 설정하세요.)

앱에 API 키 추가

API 키는 버전 제어 시스템에 등록하면 안 되며, 프로젝트의 루트 디렉터리에 있는 local.properties 파일에 저장하는 것이 좋습니다. local.properties 파일에 관한 자세한 내용은 Gradle 속성 파일을 참고하세요. 아래의 Gradle 방식에서는 앱에서 안전하게 참조할 수 있도록 API 키를 local.properties 파일에 저장하는 방법을 보여줍니다.

API 키를 추가하는 방법은 다음과 같습니다.

  1. 프로젝트 수준 디렉터리에서 local.properties를 연 후 아래의 코드를 파일에 추가합니다. YOUR_API_KEY를 내 API 키로 바꾸세요.
    MAPS_API_KEY=YOUR_API_KEY
      
  2. 앱 수준 build.gradle 파일에서 defaultConfig 요소에 이 코드를 추가합니다. 이렇게 하면 Android 스튜디오에서 빌드 시 local.properties 파일의 지도 API 키를 읽은 다음 mapsApiKey 빌드 변형을 Android 매니페스트에 삽입할 수 있습니다.
    android {
        defaultConfig {
            // ...
            // Set the properties within `local.properties` into a `Properties` class so that values
            // within `local.properties` (e.g. Maps API key) are accessible in this file.
            Properties properties = new Properties()
            if (rootProject.file("local.properties").exists()) {
                properties.load(rootProject.file("local.properties").newDataInputStream())
            }
    
            // Inject the Maps API key into the manifest
            manifestPlaceholders = [ mapsApiKey : properties.getProperty("MAPS_API_KEY", "") ]
        }
    }
      
  3. AndroidManifest.xml 파일에서 다음 코드를 application 요소의 하위 요소로 추가합니다.
    <meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="${mapsApiKey}" />
        
  4. 파일을 저장하고 프로젝트를 Gradle과 동기화합니다.

참고: 위의 내용처럼, com.google.android.geo.API_KEY는 API 키의 권장 메타데이터 이름입니다. 이 이름의 키는 Android 플랫폼에서 Maps SDK for Android 등 여러 Google 지도 기반 API를 인증하는 데 사용할 수 있습니다. 이전 버전과의 호환성을 위해 API에서는 com.google.android.maps.v2.API_KEY 이름도 지원합니다. 이 기존 이름을 사용하면 Android 지도 API v2만 인증할 수 있습니다. 애플리케이션에서는 API 키 메타데이터 이름을 하나만 지정할 수 있습니다. 두 개가 모두 지정되면 API에서 예외가 발생합니다.

API 키에 제한 설정

API 키에 제한을 설정하면 승인된 요청만 API 키로 실행되기 때문에 애플리케이션 보안이 강화됩니다. 안내에 따라 API 키에 대한 제한을 설정하시기 바랍니다. 자세한 내용은 API 키 권장사항을 참고하세요.

API 키에 제한을 설정하는 방법은 다음과 같습니다.

  1. Cloud Console의 프로젝트 선택기 페이지에서 API 키를 추가할 Google Cloud 프로젝트를 선택하거나 만듭니다.

    프로젝트 선택기 페이지로 이동

  2. API 및 서비스 > 사용자 인증 정보 페이지로 이동합니다.

    사용자 인증 정보 페이지로 이동

  3. 제한을 설정할 API 키를 선택합니다. API 키 속성 페이지가 나타납니다.
  4. 키 제한사항에서 다음 제한사항을 설정합니다.
    • 애플리케이션 제한:
      1. Android 앱을 선택합니다.
      2. + 패키지 이름 및 디지털 지문 추가를 클릭합니다.
      3. 패키지 이름과 SHA-1 인증서 디지털 지문을 입력합니다. 예:
        com.example.android.mapexample
        BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75
        (자세한 내용은 앱의 SHA-1 디지털 지문을 가져오는 위치를 참고하세요.)
    • API 제한:
      1. 키 제한을 클릭합니다.
      2. API 선택 드롭다운에서 Android용 Maps SDK를 선택합니다.
        (Android용 Maps SDK가 표시되지 않으면 사용 설정해야 합니다.)
  5. 변경을 완료하려면 저장을 클릭합니다.

앱의 SHA-1 디지털 지문을 가져오는 위치

Android API 키 제한은 SHA-1 디지털 지문이라고 하는 간단한 형식의 앱 디지털 인증서를 기반으로 합니다.

Android 스튜디오에서 인증서 정보 가져오기

Android용 Maps SDK의 시작 가이드를 따르면 Android 스튜디오에서 앱의 사용자 인증 정보를 이용해 간편하게 google_maps_api.xml 파일을 만들 수 있습니다.

다음 방법 중 하나를 선택하여 Android 스튜디오에서 API 키를 가져오세요.

  • 쉽고 빠른 방법: Android 스튜디오에서 자동으로 생성된 google_maps_api.xml 파일에 있는 링크를 사용합니다.
    1. google_maps_api.xml 파일에 있는 링크를 복사하여 브라우저에 붙여넣습니다. 링크가 Google Cloud Console에 연결되고 필수 정보가 링크의 URL 매개변수를 통해 Cloud Console에 제공되므로, 개발자가 직접 입력해야 하는 정보가 줄어듭니다.
    2. 안내에 따라 Cloud Console에서 새 프로젝트를 만들거나 기존 프로젝트를 선택합니다.
    3. 프로젝트의 Android 제한 API 키를 만듭니다.
    4. 만든 API 키를 복사하고 Android 스튜디오로 돌아가 API 키를 google_maps_api.xml 파일의 <string> 요소에 붙여넣습니다.
  • 약간 덜 빠른 방법: Android 스튜디오에서 만든 google_maps_api.xml 파일에 제공된 사용자 인증 정보를 사용합니다.
    1. google_maps_api.xml 파일에 있는 사용자 인증 정보를 복사합니다.
    2. Google Cloud Platform Console로 이동합니다.
    3. 복사한 사용자 인증 정보를 사용하여 기존 API 키에 앱을 추가하거나 새 API 키를 만듭니다.

직접 인증서 정보 가져오기

앱을 만들 때 시작 가이드를 따르지 않은 경우 인증서의 SHA-1 디지털 지문을 직접 가져와야 합니다. 먼저 유효한 인증서를 사용 중인지 확인합니다. 다음과 같은 인증서 2개를 보유할 수 있습니다.

  • 디버그 인증서: 디버그 빌드를 실행할 때 Android SDK 도구에서 자동으로 생성하는 인증서입니다. 이 인증서는 테스트 중인 앱에만 사용하세요. 디버그 인증서로 서명된 앱은 게시하지 마세요. 디버그 인증서는 Android 개발자 문서의 디버그 모드에서 서명에 자세히 설명되어 있습니다.
  • 출시 인증서: 출시 빌드를 실행할 때 Android SDK 도구에서 이 인증서를 생성합니다. keytool 프로그램을 사용하여 이 인증서를 생성할 수도 있습니다. 앱을 출시할 준비가 되면 이 인증서를 사용하세요.

아래의 단계에 따라 keytool 프로그램을 -v 매개변수와 함께 사용하여 인증서의 SHA-1 디지털 지문을 표시합니다. Keytool에 대한 자세한 내용은 Oracle 문서를 참고하세요.

디버그 인증서

디버그 인증서 디지털 지문 표시

  1. 디버그 키 저장소 파일을 찾습니다. 파일 이름은 debug.keystore이며 프로젝트를 처음 빌드할 때 생성됩니다. 기본적으로 파일은 Android Virtual Device(AVD) 파일과 동일한 디렉터리에 저장됩니다.

    • macOS 및 Linux: ~/.android/
    • Windows Vista 및 Windows 7: C:\Users\your_user_name\.android\
  2. SHA-1 디지털 지문을 나열합니다.

    • Linux 또는 macOS의 경우 터미널 창을 열고 다음을 입력합니다.

      keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
    • Windows Vista 및 Windows 7의 경우 다음을 실행합니다.

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

다음과 비슷한 출력이 표시됩니다.

Alias name: androiddebugkey
Creation date: Jan 01, 2013
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=Android Debug, O=Android, C=US
Issuer: CN=Android Debug, O=Android, C=US
Serial number: 4aa9b300
Valid from: Mon Jan 01 08:04:04 UTC 2013 until: Mon Jan 01 18:04:04 PST 2033
Certificate fingerprints:
     MD5:  AE:9F:95:D0:A6:86:89:BC:A8:70:BA:34:FF:6A:AC:F9
     SHA1: BB:0D:AC:74:D3:21:E1:43:07:71:9B:62:90:AF:A1:66:6E:44:5D:75
     Signature algorithm name: SHA1withRSA
     Version: 3
출시 인증서

출시 인증서 디지털 지문 표시

  1. 출시 인증서 키 저장소 파일을 찾습니다. 출시 키 저장소에는 기본 위치 또는 이름이 없습니다. 출시용 앱을 빌드할 때 이를 지정하지 않으면 빌드에서 .apk를 서명되지 않은 상태로 두며 여기에 먼저 서명해야 게시할 수 있습니다. 출시 인증서의 경우 인증서의 별칭 및 키 저장소와 인증서의 비밀번호도 필요합니다. 다음을 입력하면 키 저장소에 있는 모든 키의 별칭이 나열됩니다.

    keytool -list -keystore your_keystore_name

    your_keystore_name.keystore 확장자를 포함하여 키 저장소의 정규화된 경로와 이름으로 대체합니다. 키 저장소의 비밀번호를 입력하라는 메시지가 표시됩니다. 그런 다음 keytool에 키 저장소에 있는 모든 별칭이 표시됩니다.

  2. 터미널이나 명령 프롬프트에 다음을 입력합니다.

    keytool -list -v -keystore your_keystore_name -alias your_alias_name

    your_keystore_name.keystore 확장자를 포함하여 키 저장소의 정규화된 경로와 이름으로 대체합니다. your_alias_name을 인증서를 만들 때 인증서에 할당한 별칭으로 대체합니다.

다음과 비슷한 출력이 표시됩니다.

Alias name: <alias_name>
Creation date: Feb 02, 2013
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=Android Debug, O=Android, C=US
Issuer: CN=Android Debug, O=Android, C=US
Serial number: 4cc9b300
Valid from: Mon Feb 02 08:01:04 UTC 2013 until: Mon Feb 02 18:05:04 PST 2033
Certificate fingerprints:
    MD5:  AE:9F:95:D0:A6:86:89:BC:A8:70:BA:34:FF:6B:AC:F9
    SHA1: BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:90:AF:A1:66:6E:44:5D:75
    Signature algorithm name: SHA1withRSA
    Version: 3

SHA1으로 시작하는 행에 인증서의 SHA-1 디지털 지문이 포함됩니다. 디지털 지문은 콜론으로 구분된 20개의 두 자리 16진수 시퀀스입니다.

디지털 인증서에 대한 자세한 내용은 Android의 앱 서명 관련 가이드를 참고하세요.