Partager via


Obtention d’une clé API Google Maps

Pour utiliser la fonctionnalité Google Cartes dans Android, vous devez vous inscrire à une clé API Cartes auprès de Google. Jusqu’à ce que vous procédiez ainsi, vous verrez simplement une grille vide au lieu d’une carte dans vos applications. Vous devez obtenir une clé Google Cartes API Android v2 : les clés de l’ancienne clé API Google Cartes Android v1 ne fonctionneront pas.

L’obtention d’une clé API Cartes v2 implique les étapes suivantes :

  1. Récupérez l’empreinte SHA-1 du magasin de clés utilisé pour signer l’application.
  2. Créez un projet dans la console Api Google.
  3. Obtention de la clé API.

Obtention de votre empreinte digitale de clé de signature

Pour demander une clé API Cartes de Google, vous devez connaître l’empreinte SHA-1 du magasin de clés utilisé pour signer l’application. En règle générale, cela signifie que vous devrez déterminer l’empreinte DIGITALE SHA-1 pour le magasin de clés de débogage, puis l’empreinte DE SHA-1 pour le magasin de clés utilisé pour signer votre application à des fins de mise en production.

Par défaut, le magasin de clés utilisé pour signer les versions de débogage d’une application Xamarin.Android se trouve à l’emplacement suivant :

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

Vous pouvez obtenir des informations sur un magasin de clés en exécutant la commande keytool du JDK. Cet outil se trouve généralement dans le répertoire bin Java :

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

Exécutez keytool à l’aide de la commande suivante (à l’aide des chemins d’accès de fichier indiqués ci-dessus) :

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

Exemple Debug.keystore

Pour la clé de débogage par défaut (qui est automatiquement créée pour vous pour le débogage), utilisez cette commande :

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

Clés de production

Lors du déploiement d’une application sur Google Play, elle doit être signée avec une clé privée. L’exécution keytool doit être effectuée avec les détails de la clé privée et l’empreinte SHA-1 résultante utilisée pour créer une clé API Google Cartes de production. N’oubliez pas de mettre à jour le fichier AndroidManifest.xml avec la clé API Google Cartes correcte avant le déploiement.

Sortie keytool

Vous devez voir quelque chose comme la sortie suivante dans votre fenêtre de console :

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

Vous utiliserez l’empreinte digitale SHA-1 (répertoriée après SHA1) plus loin dans ce guide.

Création d’un projet d’API

Une fois que vous avez récupéré l’empreinte SHA-1 du magasin de clés de signature, il est nécessaire de créer un projet dans la console Des API Google (ou d’ajouter le service Google Cartes API Android v2 à un projet existant).

  1. Dans un navigateur, accédez au tableau de bord de l’API console Google Developers & Services, puis cliquez sur Sélectionner un projet. Cliquez sur un nom de projet ou créez-en un en cliquant sur NOUVEAU PROJET :

    Google Developer Console CREATE PROJECT button

  2. Si vous avez créé un projet, entrez le nom du projet dans la boîte de dialogue Nouveau projet qui s’affiche. Cette boîte de dialogue fabrique un ID de projet unique basé sur le nom de votre projet. Cliquez ensuite sur le bouton Créer , comme illustré dans cet exemple :

    New project is named XamarinMapsDemo

  3. Après une minute, le projet est créé et vous accédez à la page Tableau de bord du projet. À partir de là, cliquez sur ACTIVER LES API ET SERVICES :

    Clicking Google Maps Android API in the Library section

  4. Dans la page Bibliothèque d’API, cliquez sur Cartes SDK pour Android. Dans la page suivante, cliquez sur ACTIVER pour activer le service pour ce projet :

    Clicking the ENABLE button in the Dashboard section

À ce stade, le projet d’API a été créé et Google Cartes’API Android v2 a été ajouté à celui-ci. Toutefois, vous ne pouvez pas utiliser cette API dans votre projet tant que vous ne créez pas d’informations d’identification. La section suivante explique comment créer une clé API et autoriser une application Xamarin.Android à utiliser cette clé.

Obtention de la clé API

Une fois le projet d’API de console de développement Google créé, il est nécessaire de créer une clé API Android. Les applications Xamarin.Android doivent disposer d’une clé API avant qu’elles ne soient autorisées à accéder à l’API Map Android v2.

  1. Dans la page Cartes SDK pour Android qui s’affiche (après avoir cliqué sur ACTIVER à l’étape précédente), accédez à l’onglet Informations d’identification, puis cliquez sur le bouton Créer des informations d’identification :

    Maps SDK for Android Credentials message

  2. Cliquez sur la clé API :

    Add credentials to your project dialog

  3. Une fois ce bouton cliqué, la clé API est générée. Ensuite, il est nécessaire de restreindre cette clé afin que seule votre application puisse appeler des API avec cette clé. Cliquez sur RESTREINDRE LA CLÉ :

    Clicking Restrict Key on the Credentials page

  4. Remplacez le champ Nom de la clé API 1 par un nom qui vous aidera à vous rappeler ce que la clé est utilisée (Xamarin Cartes DemoKey est utilisée dans cet exemple). Cliquez ensuite sur la case d’option des applications Android :

    Selecting Android apps on the Credentials page

  5. Pour ajouter l’empreinte digitale SHA-1, cliquez sur + Ajouter un nom de package et une empreinte digitale :

    Clicking Add package name and fingerprint

  6. Entrez le nom du package de votre application et entrez l’empreinte digitale du certificat SHA-1 (obtenue comme keytool expliqué précédemment dans ce guide). Dans l’exemple suivant, le nom du package pour XamarinMapsDemo lequel il est entré, suivi de l’empreinte digitale du certificat SHA-1 obtenu à partir de debug.keystore :

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

  7. Notez que, pour que votre APK accède à Google Cartes, vous devez inclure des empreintes digitales SHA-1 et des noms de package pour chaque magasin de clés (débogage et mise en production) que vous utilisez pour signer votre APK. Par exemple, si vous utilisez un ordinateur pour déboguer et un autre ordinateur pour générer l’APK de mise en production, vous devez inclure l’empreinte digitale du certificat SHA-1 à partir du magasin de clés de débogage du premier ordinateur et de l’empreinte digitale du certificat SHA-1 à partir du magasin de clés de mise en production du deuxième ordinateur. Cliquez sur + Ajouter un nom de package et une empreinte digitale pour ajouter un autre nom d’empreinte digitale et de package, comme illustré dans cet exemple :

    Adding another fingerprint creates another SHA-1 certificate

  8. Cliquez sur le bouton Enregistrer pour enregistrer vos modifications. Ensuite, vous êtes retourné à la liste de vos clés API. Si vous avez d’autres clés API que vous avez créées précédemment, elles sont également répertoriées ici. Dans cet exemple, une seule clé API (créée aux étapes précédentes) est répertoriée :

    XamarinMapsDemoKey is shown in the API keys list

Connecter le projet à un compte facturable

À compter du 11 juin 2018, la clé API ne fonctionnera pas si le projet n’est pas connecté à un compte facturable (même si le service est toujours gratuit pour les applications mobiles).

  1. Cliquez sur le bouton du menu hamburger et sélectionnez la page Facturation :

    Selecting the hamburger menu billing section

  2. Lier le projet à un compte de facturation en cliquant sur Lier un compte de facturation suivi de CREATE BILLING ACCOUNT dans la fenêtre contextuelle affichée (si vous n’avez pas de compte, vous serez guidé pour en créer un) :

    Link project to billing account

Ajout de la clé à votre projet

Enfin, ajoutez cette clé API au fichier AndroidManifest.XML de votre application Xamarin.Android. Dans l’exemple suivant, YOUR_API_KEY vous devez remplacer la clé API générée dans les étapes précédentes :

<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>