참고: Google Maps Platform 프리미엄 플랜은 신규 가입이 불가능하며 신규 고객에게 제공되지 않습니다.
Android용 Maps SDK를 사용하려면 API 키가 있어야 합니다. API 키는 사용 및 결제 목적으로 프로젝트와 관련된 요청을 인증하는 데 사용되는 고유 식별자입니다.
API 키 가져오기
프로젝트에 연결된 API 키가 하나 이상 있어야 합니다.
API 키를 가져오는 방법은 다음과 같습니다.
- Google Cloud Platform Console로 이동합니다.
- 프로젝트 드롭다운을 클릭하고 프리미엄 플랜을 구매할 때 생성된 프로젝트를 선택합니다. 프로젝트 이름은 Google Maps APIs for Business, Google Maps for Work 또는 Google Maps로 시작합니다.
- 메뉴 버튼
을 클릭하고 API 및 서비스 > 사용자 인증 정보를 선택합니다.
-
사용자 인증 정보 페이지에서 사용자 인증 정보 만들기 > API 키를 클릭합니다.
API 키 생성 완료 대화상자에 새로 생성된 API 키(암호화된 문자열)가 표시됩니다. -
닫기를 클릭합니다.
새 API 키는 사용자 인증 정보 페이지의 API 키 아래 표시됩니다.
참고: 플랜의 모든 기능을 이용하려면 프리미엄 고객은 프리미엄 계정과 연결된 프로젝트를 사용해야 합니다. 라이선스를 구매할 때 프리미엄 애셋의 이름이 gme-[company] & proj-[number] ([type])
형식으로 제공됩니다.
올바른 프로젝트에 액세스하고 있는지 확인하려면 console.cloud.google.com/project/number
를 사용하여 프로젝트 소유자로 콘솔에 로그인하세요(number
를 프로젝트 번호로 바꾸세요).
프로젝트 소유자는 환영 메일에서 찾을 수 있습니다.
앱에 API 키 추가
아래 단계에 따라 AndroidManifest.xml
파일에 포함된 애플리케이션의 매니페스트에
API 키를 추가합니다.
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 키 값으로 설정합니다.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 키를 제한하는 방법은 다음과 같습니다.
-
GCP Console의 프로젝트 선택기 페이지에서 API 키를 추가할 Google Cloud 프로젝트를 선택하거나 만듭니다.
-
API 및 서비스 > 사용자 인증 정보 페이지로 이동합니다.
- 제한을 설정할 API 키를 선택합니다. 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 선택 드롭다운에서 Android용 Maps SDK를 선택합니다.
(Android용 Maps SDK가 표시되지 않으면 사용 설정해야 합니다.) - 변경을 완료하려면 저장을 클릭합니다.
앱의 SHA-1 디지털 지문을 가져오는 위치
Android API 키 제한은 SHA-1 디지털 지문이라고 하는 간단한 형식의 앱 디지털 인증서를 기반으로 합니다.
Android 스튜디오에서 인증서 정보 가져오기
Maps SDK for Android의 시작
가이드를 따르는 경우 Android 스튜디오에서 앱의 사용자 인증 정보를
사용하여 간편하게 google_maps_api.xml
파일을 만듭니다.
다음 방법 중 하나를 선택하여 Android 스튜디오에서 API 키를 가져옵니다.
- 빠르고 쉬운 방법: Android 스튜디오에서 만든
google_maps_api.xml
파일에 제공된 링크를 사용합니다.google_maps_api.xml
파일에 제공된 링크를 복사하여 브라우저에 붙여넣습니다. 링크는 Google Cloud Platform Console로 연결되고 필수 정보가 URL 매개변수를 통해 Google Cloud Platform Console에 제공되므로 개발자가 직접 입력해야 하는 항목이 줄어듭니다.- 안내에 따라 Google Cloud Platform Console에서 새 프로젝트를 만들거나 기존 프로젝트를 선택합니다.
- 프로젝트의 Android 제한 API 키를 만듭니다.
- 만든 API 키를 복사하고 Android 스튜디오로 돌아가
API 키를
google_maps_api.xml
파일의 <string> 요소에 붙여넣습니다.
- 약간 덜 빠른 방법: Android 스튜디오에서 만든
google_maps_api.xml
파일에 제공된 사용자 인증 정보를 사용합니다.google_maps_api.xml
파일에 제공된 사용자 인증 정보를 복사합니다.- Google Cloud Platform Console로 이동합니다.
- 복사한 사용자 인증 정보를 사용하여 기존 API 키에 앱을 추가하거나 새 API 키를 만듭니다.
직접 인증서 정보 가져오기
앱을 만들 때 시작 가이드를 따르지 않은 경우 인증서의 SHA-1 디지털 지문을 직접 가져와야 합니다. 먼저 유효한 인증서를 사용 중인지 확인합니다. 2개의 인증서가 있을 수 있습니다.
- 디버그 인증서: 디버그 빌드를 실행할 때 Android SDK 도구에서 이 인증서를 자동으로 생성합니다. 이 인증서는 테스트 중인 앱에만 사용하세요. 디버그 인증서로 서명된 앱은 게시하지 마세요. 디버그 인증서는 Android 개발자 문서의 디버그 모드에서 서명에 자세히 설명되어 있습니다.
- 출시 인증서: 출시 빌드를 실행할 때 Android SDK 도구에서
이 인증서를 생성합니다.
keytool
프로그램을 사용하여 이 인증서를 생성할 수도 있습니다. 앱을 출시할 준비가 되면 이 인증서를 사용하세요.
아래 단계에 따라 keytool
프로그램을 -v
매개변수와
함께 사용하여 인증서의 SHA-1 디지털 지문을 표시합니다. Keytool에 대한
자세한 내용은
Oracle 문서를 참고하세요.
디버그 인증서 디지털 지문 표시
디버그 키 저장소 파일을 찾습니다. 파일 이름은
debug.keystore
이며 프로젝트를 처음 빌드할 때 생성됩니다. 기본적으로 파일은 Android Virtual Device(AVD) 파일과 동일한 디렉터리에 저장됩니다.- macOS 및 Linux:
~/.android/
- Windows Vista 및 Windows 7:
C:\Users\your_user_name\.android\
- macOS 및 Linux:
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
출시 인증서 디지털 지문 표시
-
출시 인증서 키 저장소 파일을 찾습니다. 출시 키 저장소에는 기본 위치 또는 이름이 없습니다. 출시용 앱을 빌드할 때 이를 지정하지 않으면 빌드에서
.apk
를 서명되지 않은 상태로 두며 여기에 먼저 서명해야 게시할 수 있습니다. 출시 인증서의 경우 인증서의 별칭 및 키 저장소와 인증서의 비밀번호도 필요합니다. 다음을 입력하면 키 저장소에 있는 모든 키의 별칭이 나열됩니다.keytool -list -keystore your_keystore_name
your_keystore_name
을.keystore
확장자를 포함하여 키 저장소의 정규화된 경로와 이름으로 대체합니다. 키 저장소의 비밀번호를 입력하라는 메시지가 표시됩니다. 그런 다음keytool
에 키 저장소에 있는 모든 별칭이 표시됩니다. -
터미널이나 명령 프롬프트에 다음을 입력합니다.
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 앱 서명 가이드를 참고하세요.