다음을 통해 공유


Google Maps API 키 가져오기

Android에서 Google Maps 기능을 사용하려면 Google에 Maps API 키를 등록해야 합니다. 이를 수행하기 전까지는 애플리케이션에 맵 대신 빈 그리드만 표시됩니다. Google Maps Android API v2 키를 얻어야 합니다. 이전 Google Maps Android API 키 v1의 키는 작동하지 않습니다.

Maps API v2 키를 얻으려면 다음 단계를 수행해야 합니다.

  1. 애플리케이션 로그인에 사용되는 키 저장소의 SHA-1 지문을 검색합니다.
  2. Google API 콘솔에서 프로젝트를 만듭니다.
  3. API 키를 가져옵니다.

서명 키 지문 가져오기

Google에서 Maps API 키를 요청하려면 애플리케이션 로그인에 사용되는 키 저장소의 SHA-1 지문을 알아야 합니다. 일반적으로 디버그 키 저장소에 대한 SHA-1 지문을 확인한 후 릴리스에 대한 애플리케이션 서명에 사용되는 키 저장소에 대한 SHA-1 지문을 확인해야 합니다.

기본적으로 Xamarin.Android 애플리케이션의 디버그 버전 서명에 사용되는 키 저장소는 다음 위치에서 찾을 수 있습니다.

C:\Users\[USERNAME]\AppData\Local\Xamarin\Mono for Android\debug.keystore

JDK에서 keytool 명령을 실행하면 키 저장소에 대한 정보를 가져올 수 있습니다. 이 도구는 일반적으로 Java bin 디렉터리에 있습니다.

C:\Program Files\Android\jdk\microsoft_dist_openjdk_[VERSION]\bin\keytool.exe

다음 명령을 사용하여 keytool 실행(위에 표시된 파일 경로 사용):

keytool -list -v -keystore [STORE FILENAME] -alias [KEY NAME] -storepass [STORE PASSWORD] -keypass [KEY PASSWORD]

Debug.keystore 예

기본 디버그 키(디버깅을 위해 자동으로 생성됨)의 경우 다음 명령을 사용합니다.

keytool.exe -list -v -keystore "C:\Users\[USERNAME]\AppData\Local\Xamarin\Mono for Android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

프로덕션 키

Google Play 스토어에 앱을 배포할 때는 프라이빗 키로 서명되어야 합니다. 프라이빗 키 세부 정보로 keytool을 실행해야 합니다. 결과로 생성되는 SHA-1 지문은 프로덕션 Google Maps API 키를 만들기 위해 사용됩니다. 배포하기 전 올바른 Google Maps API 키로 AndroidManifest.xml 파일을 업데이트해야 합니다.

Keytool 출력

콘솔 창에 다음과 비슷한 출력이 표시됩니다.

Alias name: androiddebugkey
Creation date: Jan 01, 2016
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

이 가이드의 뒷부분에 나오는 SHA-1 지문(SHA1 뒤에 나열됨)을 사용합니다.

API 프로젝트 만들기

서명 키 저장소의 SHA-1 지문을 검색한 후에는 Google API 콘솔에 새 프로젝트를 만들어야 합니다(또는 기존 프로젝트에 Google Maps Android API v2 서비스 추가).

  1. 브라우저에서 Google Developers Console API & Services Dashboard(Google 개발자 콘솔 API 및 서비스 대시보드)로 이동하고 Select a project(프로젝트 선택)를 클릭합니다. 프로젝트 이름을 클릭하거나 NEW PROJECT(새 프로젝트)를 클릭하여 새 이름을 만듭니다.

    Google Developer Console CREATE PROJECT button

  2. 새 프로젝트를 만들었으면 표시된 New Project(새 프로젝트) 대화 상자에 프로젝트 이름을 입력합니다. 이 대화 상자는 프로젝트 이름을 기준으로 고유한 프로젝트 ID를 만듭니다. 그런 후, 다음 예에 표시된 것처럼 Create(만들기) 단추를 클릭합니다.

    New project is named XamarinMapsDemo

  3. 1분 정도 지나면 프로젝트가 생성되고 프로젝트의 Dashboard(대시보드) 페이지가 표시됩니다. 여기에서 ENABLE APIS AND SERVICES(API 및 서비스 사용)을 클릭합니다.

    Clicking Google Maps Android API in the Library section

  4. API Library(API 라이브러리) 페이지에서 Maps SDK for Android(Android용 Maps SDK)를 클릭합니다. 다음 페이지에서 ENABLE(사용)을 클릭하여 이 프로젝트에 대해 서비스를 설정합니다.

    Clicking the ENABLE button in the Dashboard section

이제 API 프로젝트가 생성되고 Google Maps Android API v2가 여기에 추가되었습니다. 하지만 이에 대한 자격 증명을 만들기 전까지는 프로젝트에서 이 API를 사용할 수 없습니다. 다음 섹션에서는 API 키를 만들고 이 키를 사용하도록 Xamarin.Android 애플리케이션에 권한을 부여하는 방법을 설명합니다.

API 키 가져오기

Google 개발자 콘솔 API 프로젝트가 생성된 다음에는 Android API 키를 만들어야 합니다. Xamarin.Android 애플리케이션에 Android Map API v2 액세스 권한을 부여하려면 API 키가 있어야 합니다.

  1. 이전 단계에서 ENABLE(사용)을 클릭한 후 표시되는 Maps SDK for Android(Android용 Maps SDK) 페이지에서 Credentials(자격 증명) 탭으로 이동하고 Create credentials(자격 증명 만들기) 단추를 클릭합니다.

    Maps SDK for Android Credentials message

  2. API key(API 키)를 클릭합니다.

    Add credentials to your project dialog

  3. 이 단추를 클릭하면 API 키가 생성됩니다. 그 다음에는 사용자의 앱만 이 키로 API를 호출할 수 있도록 이 키를 제한할 필요가 있습니다. RESTRICT KEY(키 제한)를 클릭합니다.

    Clicking Restrict Key on the Credentials page

  4. API Key 1(API 키 1)로 표시된 Name(이름) 필드를 키 용도를 효과적으로 나타낼 수 있는 이름으로 바꿉니다(이 예에서는 XamarinMapsDemoKey 사용). 그런 다음, Android apps(Android 앱) 라디오 단추를 클릭합니다.

    Selecting Android apps on the Credentials page

  5. SHA-1 지문을 추가하기 위해 + Add package name and fingerprint(+ 패키지 이름 및 지문 추가)를 클릭합니다.

    Clicking Add package name and fingerprint

  6. 앱의 패키지 이름을 입력하고 SHA-1 인증서 지문(이 가이드의 앞부분에 설명된 대로 keytool을 통해 획득)을 입력합니다. 다음 예에서는 XamarinMapsDemo에 대한 패키지 이름을 입력하고, debug.keystore에서 가져온 SHA-1 인증서 지문을 표시합니다.

    Package name entered is com.xamarin.docs.android.map

  7. APK가 Google Maps에 액세스할 수 있으려면 APK 서명에 사용하는 모든 키 저장소(디버그 및 릴리스)에 대해 SHA-1 지문 및 패키지 이름을 포함해야 합니다. 예를 들어 디버그용으로 하나의 컴퓨터를 사용하고 릴리스 APK를 생성하기 위해 다른 컴퓨터를 사용할 경우, 첫 번째 컴퓨터의 디버그 키 저장소에서 가져온 SHA-1 인증서 지문과 두 번째 컴퓨터의 릴리스 키 저장소에서 가져온 SHA-1 인증서 지문을 포함해야 합니다. + Add package name and fingerprint(+ 패키지 이름 및 지문 추가)를 클릭하여 이 예에 표시된 것처럼 다른 지문 및 패키지 이름을 추가합니다.

    Adding another fingerprint creates another SHA-1 certificate

  8. 저장 단추를 클릭하여 변경 내용을 저장합니다. 그러면 API 키 목록으로 돌아갑니다. 이전에 만든 다른 API 키가 있으면 그것들도 여기에 나열됩니다. 이 예에서는 이전 단계에서 만든 하나의 API 키만 나열됩니다.

    XamarinMapsDemoKey is shown in the API keys list

청구 가능 계정에 프로젝트 연결

2018년 6월 11일부터는 해당 서비스가 모바일 앱에 대해 무료로 제공되더라도 프로젝트가 청구 가능 계정에 연결되어 있지 않은 경우 API 키가 작동하지 않습니다.

  1. 햄버거 메뉴 단추를 클릭하고 Billing(청구) 페이지를 선택합니다.

    Selecting the hamburger menu billing section

  2. 표시된 팝업에서 CREATE BILLING ACCOUNT(청구 계정 만들기) 다음에 표시된 Link a billing account(청구 계정 연결)을 클릭하여 청구 계정에 프로젝트를 연결합니다(계정이 없으면 새 계정 만들기 안내가 표시됨).

    Link project to billing account

프로젝트에 키 추가

마지막으로 이 API 키를 Xamarin.Android 앱의 AndroidManifest.XML 파일에 추가합니다. 다음 예에서는 YOUR_API_KEY가 이전 단계에서 생성된 API 키로 바뀝니다.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    android:versionName="4.10" package="com.xamarin.docs.android.mapsandlocationdemo"
    android:versionCode="10">
...
  <application android:label="@string/app_name">
    <!-- Put your Google Maps V2 API Key here. -->
    <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="YOUR_API_KEY" />
    <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
  </application>
</manifest>