API 키 가져오기

Maps SDK for Android를 사용하려면 API 키가 있어야 합니다. API 키는 사용 및 결제 목적으로 프로젝트와 관련된 요청을 인증하는 데 사용되는 고유 식별자입니다.

API 키 가져오기

프로젝트에 연결된 API 키가 하나 이상 있어야 합니다.

API 키를 가져오는 방법은 다음과 같습니다.

  1. Google Cloud Platform Console로 이동합니다.
  2. 프로젝트 드롭다운을 클릭하고 API 키를 추가할 프로젝트를 선택하거나 만듭니다.
  3. 메뉴 버튼 을 클릭하고 API 및 서비스 > 사용자 인증 정보를 선택합니다.
  4. 사용자 인증 정보 페이지에서 사용자 인증 정보 만들기 > API 키를 클릭합니다.
    API 키 생성 완료 대화상자에 새로 만든 API 키가 표시됩니다.
  5. 닫기를 클릭합니다.
    새 API 키는 사용자 인증 정보 페이지의 API 키 아래 나열됩니다.
    (프로덕션에 사용하기 전에 API 키를 제한하세요.)

앱에 API 키 추가

아래 단계에 따라 AndroidManifest.xml 파일에 포함된 애플리케이션의 매니페스트에 API 키를 추가합니다.

  1. AndroidManifest.xml에서 </application> 태그를 닫기 직전에 다음 요소를 삽입하여 <application> 요소의 하위 요소로 추가합니다.
        <meta-data
            android:name="com.google.android.geo.API_KEY"
            android:value="YOUR_API_KEY"/>
        

    value 속성에서 YOUR_API_KEY를 API 키(암호화된 문자열)로 대체합니다. 이 요소는 com.google.android.geo.API_KEY 키를 API 키 값으로 설정합니다.

  2. AndroidManifest.xml을 저장하고 애플리케이션을 다시 빌드합니다.

참고: 위에 표시된 바와 같이 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 키 사용을 웹사이트(HTTP 리퍼러), 웹 서버(IP 주소) 또는 모바일 앱(Android 앱 또는 iOS 앱)으로 제한합니다. API 또는 SDK의 플랫폼을 기반으로 이 카테고리에서 하나의 제한만 선택할 수 있습니다(플랫폼별 GMP API 참고).

    참고: 동일한 (클라이언트측) 앱에서 웹, 웹 서비스 및 모바일 API를 호출해야 하는 경우 여러 개의 키를 만들고 제한하세요.

  • API 제한: API 키 사용을 하나 이상의 API 또는 SDK로 제한합니다. API 키와 연결된 API 또는 SDK에 대한 요청이 처리됩니다. API 키와 연결되지 않은 API 또는 SDK에 대한 요청은 처리되지 않습니다. (API 또는 SDK가 사용 설정되어야 하며 애플리케이션 제한을 지원해야 합니다.)

API 키를 제한하는 방법은 다음과 같습니다.

  1. Google Cloud Platform Console로 이동합니다.
  2. 프로젝트 드롭다운을 클릭하고 보호할 API 키가 포함된 프로젝트를 선택합니다.
  3. 메뉴 버튼 을 클릭하고 API 및 서비스 > 사용자 인증 정보를 선택합니다.
  4. 사용자 인증 정보 페이지에서 보호할 API 키의 이름을 클릭합니다.
  5. API 키 제한 및 이름 바꾸기 페이지에서 제한을 설정합니다.
    • 애플리케이션 제한
      • Android 앱을 선택하고 안내를 따릅니다.
      • + 패키지 이름 및 디지털 지문 추가를 클릭합니다.
      • 패키지 이름과 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 제한
      • 키 제한을 선택합니다.
      • API 선택을 클릭하고 Maps SDK for Android를 선택합니다.
        (Maps SDK for Android가 나열되어 있지 않으면 사용 설정해야 합니다.)
    • 저장을 클릭합니다.

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

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

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

Maps SDK for Android의 시작 가이드를 따르는 경우 Android 스튜디오에서 앱의 사용자 인증 정보를 사용하여 간편하게 google_maps_api.xml 파일을 만듭니다.

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

  • 빠르고 쉬운 방법: Android 스튜디오에서 만든 google_maps_api.xml 파일에 제공된 링크를 사용합니다.
    1. google_maps_api.xml 파일에 제공된 링크를 복사하여 브라우저에 붙여넣습니다. 링크는 Google Cloud Platform Console로 연결되고 필수 정보가 URL 매개변수를 통해 Google Cloud Platform Console에 제공되므로 개발자가 직접 입력해야 하는 항목이 줄어듭니다.
    2. 안내에 따라 Google Cloud Platform 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 앱 서명 가이드를 참고하세요.

프리미엄 플랜 고객 및 이전된 고객

프리미엄 플랜 고객 및 프리미엄 플랜에서 사용한 만큼만 지불하는 Google Maps Platform 가격 모델로 이전한 고객은 API 키 또는 클라이언트 ID를 사용하여 요청을 인증할 수 있습니다. 자세한 내용은 프리미엄 플랜 문서의 API 키 가져오기 개요를 참고하세요.