Configurer un projet Xcode

Après avoir activé la facturation et créé une clé API, vous pouvez configurer Xcode projet que vous utilisez pour développer votre application.

Des notes de version sont disponibles pour chaque de sortie.

Étape 1 : Installez le logiciel requis

Pour créer un projet à l'aide du SDK Navigation pour iOS, vous devez télécharger et installer:

  • Xcode version 15.0 ou ultérieure

Étape 2: Créez le projet Xcode et installez le SDK Navigation

Gestionnaire de paquets Swift

Le SDK Navigation peut être installé via Gestionnaire de paquets Swift. Pour ajouter le SDK, assurez-vous d'avoir supprimé toutes les dépendances existantes du SDK Navigation.

Pour ajouter le SDK à un projet nouveau ou existant, procédez comme suit:

  1. Ouvrez votre Xcode project ou workspace, puis accédez à File > (Fichier >) Ajouter des dépendances de packages
  2. Saisissez https://github.com/googlemaps/ios-navigation-sdk comme URL, puis appuyez sur Entrée. pour extraire le package et cliquez sur « Ajouter un package ».
  3. Pour installer un version spécifique, définissez le champ Règle de dépendance sur l'une des les options basées sur les versions. Pour les nouveaux projets, nous vous recommandons de spécifier la dernière version et à l'aide de la colonne "Version exacte", . Une fois l'opération terminée, cliquez sur "Ajouter un package".
  4. Dans la fenêtre Choose Package Products (Sélectionner les produits du package), vérifiez que GoogleNavigation sera ajouté à votre main cible désignée. Une fois l'opération terminée, cliquez sur "Ajouter un package".
  5. Pour vérifier votre installation, accédez au volet General de votre cible. Les packages installés devraient s'afficher dans Frameworks, libraries, and Embedded Content (Cadres, bibliothèques et contenu intégré). Vous pouvez également afficher les "Dépendances des packages" de la section "Navigateur de projets" pour vérifier le package et sa version.

Pour mettre à jour le package pour un projet existant, procédez comme suit:

  1. Si vous effectuez la mise à niveau à partir d'une version antérieure à la version 9.0.0,vous devez supprimer les dépendances suivantes: GoogleMapsBase, GoogleMapsCore et GoogleMapsM4B après la mise à niveau. Ne supprimez pas la dépendance pour GoogleMaps Pour en savoir plus, consultez les Notes de version de la version 9.0.0

    Dans les paramètres de configuration de votre projet Xcode, recherchez Frameworks, Bibliothèques, et les contenus intégrés. Utilisez le signe moins(-) pour supprimer le framework suivant:

    • GoogleMapsBase (uniquement pour les mises à niveau à partir de versions antérieures à la version 9.0.0)
    • GoogleMapsCore (uniquement pour les mises à niveau à partir de versions antérieures à la version 9.0.0)
    • GoogleMapsM4B (uniquement pour les mises à niveau à partir de versions antérieures à la version 9.0.0)
  2. Dans Xcode, accédez à Fichier > Packages > Update To Latest Package Versions" (Mise à jour vers les dernières versions du package).
  3. Pour vérifier votre installation, accédez à la section Package Dependencies (Dépendances des packages) du Project Navigator (Navigateur de projets). pour vérifier le package et sa version.
<ph type="x-smartling-placeholder">

Pour supprimer les dépendances existantes du SDK Navigation ajoutées à l'aide de CocoaPods, procédez comme suit:

  1. Fermez votre espace de travail Xcode. Ouvrez le terminal et exécutez la commande suivante:
    sudo gem install cocoapods-deintegrate cocoapods-clean 
    pod deintegrate 
    pod cache clean --all
  2. Supprimez Podfile, Podfile.resolved et les Xcode workspace si vous ne les utilisez pas pour d'autres produits que CocoaPods.

Pour supprimer manuellement le SDK Navigation pour iOS existant : procédez comme suit:
  1. Dans les paramètres de configuration de votre projet Xcode, recherchez Frameworks, Bibliothèques, et les contenus intégrés. Utilisez le signe moins(-) pour supprimer le framework suivant: <ph type="x-smartling-placeholder">
      </ph>
    • GoogleMaps.xcframework
    • GoogleMapsBase.xcframework
    • GoogleMapsCore.xcframework
    • GoogleNavigation.xcframework
  2. Dans le répertoire de premier niveau de votre projet Xcode, supprimez GoogleMaps. d'un bundle.

CocoaPods

Le SDK Navigation pour iOS est disponible CocoaPods. CocoaPods est un gestionnaire de dépendances Open Source pour les projets Cocoa Swift et Objective-C.

Si vous ne possédez pas encore l'outil CocoaPods, installez-le sur macOS en exécutant la commande ci-dessous à partir du terminal. Pour en savoir plus, consultez les CocoaPods guide de démarrage.

sudo gem install cocoapods

Créer un Podfile pour le SDK Navigation pour iOS et l'utiliser pour installer l'API et ses dépendances:

  1. Si vous n'avez pas encore de projet Xcode, créez-en un maintenant et enregistrez-le dans sur votre ordinateur local. Si vous débutez dans le développement iOS:
    1. Créez un projet.
    2. Sélectionnez iOS > Application.
    3. Sur l'écran des options du projet:
      1. Saisissez le nom du projet dans le champ Project Name (Nom du projet).
      2. Notez la valeur du champ ID du bundle. Vous pouvez utiliser cette valeur pour restreindre votre clé API ci-dessous.
      3. Définissez l'interface du projet sur Storyboard.
      4. Définissez le paramètre Language (Langue) sur Swift ou Objective-C.
  2. Créez un fichier nommé Podfile dans le répertoire de votre projet. Ce fichier définit les dépendances de votre projet.
  3. Modifiez Podfile et ajoutez vos dépendances avec leurs versions. Voici un exemple qui inclut la dépendance dont vous avez besoin pour SDK Navigation pour iOS: # Numéro de référence de l'installation de CocoaPods
    source 'https://github.com/CocoaPods/Specs.git'
    
    platform :ios, '15.0'
    
    target 'YOUR_APPLICATION_TARGET_NAME_HERE' do
      pod 'GoogleNavigation', '9.1.0'
    end
            
    Veillez à exécuter régulièrement pod outdated pour détecter les plus récents versions. Si nécessaire, effectuez une mise à niveau vers la dernière version.
  4. Enregistrez le Podfile.
  5. Ouvrez un terminal et accédez au répertoire contenant le fichier Podfile:

    cd <path-to-project>
  6. Exécutez la commande pod install. Cette opération permet d'installer la les API spécifiées dans Podfile, ainsi que toutes les dépendances.

    pod install
  7. Fermez Xcode, puis ouvrez (double-cliquez) le fichier .xcworkspace de votre projet pour lancer Xcode. À partir de ce moment, vous devez utiliser le fichier .xcworkspace pour ouvrir le projet.

Pour mettre à jour l'API pour un projet existant, procédez comme suit:

  1. Ouvrez un terminal et accédez au répertoire du projet contenant Podfile.
  2. Exécutez la commande pod update. Cela met à jour toutes les API spécifié dans Podfile à la dernière version.

Installation manuelle

Ce guide explique comment ajouter manuellement les XCFrameworks contenant les le SDK Navigation pour iOS et le SDK Maps pour iOS à votre projet, puis configurez vos paramètres de compilation dans Xcode. Un XCFramework est un paquet binaire que vous pouvez utiliser sur plusieurs plates-formes, y compris des machines utilisant le chipset M1.

Suivez ces étapes pour installer XCFrameworks pour le SDK Navigation pour iOS, et le SDK Maps pour iOS:

  1. Téléchargez les fichiers de ressources et les binaires du SDK suivants:
  2. Lancez Xcode et ouvrez un projet existant ou créez-en un. Si vous débutez avec iOS, créez un projet et sélectionnez Modèle d'application iOS.
  3. Supprimez du projet toutes les références Maps, Navigation et Places existantes.
  4. Faites glisser les XCFrameworks suivants dans votre projet sous Cadres, bibliothèques et contenus intégrés pour installer à la fois les cartes et les SDK Navigation (lorsque vous y êtes invité, sélectionnez Copy items if needed): <ph type="x-smartling-placeholder">
      </ph>
    • GoogleMaps.xcframework
    • GoogleMapsBase.xcframework
    • GoogleMapsCore.xcframework
    • GoogleNavigation.xcframework
  5. Faites glisser GoogleMaps.bundle depuis les GoogleMapsResources que vous avez téléchargées. dans le répertoire de premier niveau de votre projet Xcode. Lorsque vous y êtes invité, assurez-vous que l'option Copier les éléments si nécessaire est sélectionnée.
  6. Faites glisser GoogleNavigation.bundle à partir de GoogleNavigationResources que vous avez téléchargé. dans le répertoire de premier niveau de votre projet Xcode. Lorsque vous y êtes invité, assurez-vous L'option Copier les éléments dans le dossier du groupe de destination est sélectionnée.
  7. Sélectionnez votre projet dans le navigateur de projets, puis choisissez votre cible de votre application.
  8. Ouvrez l'onglet Build Phases (Phases de compilation) et, dans Associez le binaire à des bibliothèques et ajoutez les frameworks et bibliothèques suivants: <ph type="x-smartling-placeholder">
      </ph>
    • Accelerate.framework
    • AudioToolbox.framework
    • AVFoundation.framework
    • Contacts.framework
    • CoreData.framework
    • CoreGraphics.framework
    • CoreImage.framework
    • CoreLocation.framework
    • CoreTelephony.framework
    • CoreText.framework
    • GLKit.framework
    • ImageIO.framework
    • libc++.tbd
    • libxml2.tbd
    • libz.tbd
    • Metal.framework
    • OpenGLES.framework
    • QuartzCore.framework
    • Security.framework
    • SystemConfiguration.framework
    • UIKit.framework
    • UserNotifications.framework
    • WebKit.framework
  9. Dans la cible de votre application, sélectionnez l'onglet Fonctionnalités. activez Modes d'arrière-plan ainsi que les modes suivants: <ph type="x-smartling-placeholder">
      </ph>
    • Audio, AirPlay et Picture-in-picture
    • Mises à jour de la position
  10. Choisissez votre projet plutôt qu'une cible spécifique, puis ouvrez le panneau Build Paramètres. Dans la section Other Linker Flags (Autres indicateurs Linker) : Ajout de ‑ObjC pour debug et release. Si ces paramètres ne sont pas visibles, modifiez le filtre dans la Barre Build Settings (Paramètres de compilation) de Basic à All (Tous).
  11. Ouvrez Info.plist et ajoutez les paires clé-valeur suivantes: <ph type="x-smartling-placeholder">
      </ph>
    • Clé:NSLocationWhenInUseUsageDescription (Privacy - Location When In use Usage Description)
      Valeur : "Cette application a besoin de l'autorisation d'utiliser votre position pour la navigation détaillée."
    • Clé:NSLocationAlwaysAndWhenInUseUsageDescription (Privacy - Location Always and When In use Usage Description)
      Valeur : "Cette application a besoin de l'autorisation d'utiliser votre position pour la navigation détaillée."

Étape 3: Inspectez le fichier manifeste de confidentialité Apple

Apple exige des informations sur la confidentialité des applications disponibles sur l'App Store. Pour obtenir des mises à jour et d'autres informations, consultez la page Informations sur la confidentialité sur l'App Store d'Apple.

Le fichier manifeste de confidentialité Apple est inclus dans le bundle de ressources pour le SDK. Pour vérifier que le fichier manifeste de confidentialité a été inclus et pour inspecter son contenu, créez une archive de votre application et générez un rapport sur la confidentialité à partir de cette archive.

Étape 4 : Ajoutez votre clé API au projet

Les exemples suivants montrent comment ajouter la clé API à votre projet dans Xcode:

Swift

Ajoutez votre clé API à votre fichier AppDelegate.swift comme suit :

  1. Ajoutez les instructions d'importation suivantes:
    import GoogleMaps
    import GoogleNavigation
  2. Ajoutez les éléments suivants à votre application(_:didFinishLaunchingWithOptions:) méthode:
    GMSServices.provideAPIKey("YOUR_API_KEY")

Objective-C

Ajoutez votre clé API à votre fichier AppDelegate.m comme suit :

  1. Ajoutez les instructions d'importation suivantes:
    @import GoogleMaps;
    @import GoogleNavigation;
  2. Ajoutez les éléments suivants à votre application:didFinishLaunchingWithOptions: méthode:
    [GMSServices provideAPIKey:@"YOUR_API_KEY"];

Étape 5 : Ajoutez une carte

Ce code montre comment ajouter une carte simple à un ViewController existant : y compris certains paramètres initials pour la navigation.

Pour pouvoir activer la navigation, l'utilisateur doit accepter les conditions d'utilisation et et conditions d'exploitation. Pour inviter l'utilisateur, appelez GMSNavigationServices.showTermsAndConditionsDialogIfNeeded(), puis vérifiez pour voir si les conditions ont été acceptées. Si l'utilisateur refuse les conditions, mapView.isNavigationEnabled = true n'a aucun effet, tandis que mapView.navigator l'est. "nil".

Swift

import UIKit
import GoogleNavigation

class ViewController: UIViewController {

  var mapView: GMSMapView!
  var locationManager: CLLocationManager!

  override func loadView() {
    locationManager = CLLocationManager()
    locationManager.requestAlwaysAuthorization()

    let options = GMSMapViewOptions()
    options.camera = camera
    options.frame = .zero
    mapView = GMSMapView(options: options)

    // Show the terms and conditions.
    let termsAndConditionsOptions = GMSNavigationTermsAndConditionsOptions(companyName: "Ride Share Co.")

    GMSNavigationServices.showTermsAndConditionsDialogIfNeeded(with: termsAndConditionsOptions) { termsAccepted in
      if termsAccepted {
        // Enable navigation if the user accepts the terms.
        self.mapView.isNavigationEnabled = true
      } else {
        // Handle the case when the user rejects the terms and conditions.
      }
    }

    view = mapView
  }

  // TODO: Add navigation code.

}

Objective-C

#import "ViewController.h"
@import GoogleNavigation;

@interface ViewController ()
@end

@implementation ViewController
GMSMapView *_mapView;
CLLocationManager *_locationManager;

-   (void)loadView {

  _locationManager = [[CLLocationManager alloc] init];
  [_locationManager requestAlwaysAuthorization];

  GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:47.67
                                                          longitude:-122.20
                                                               zoom:14];
  GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
  options.frame = CGRectZero;
  options.camera = camera;
  options.mapID = mapID;
  _mapView = [[GMSMapView alloc] initWithOptions:options];

  // Show the terms and conditions.
  GMSNavigationTermsAndConditionsOptions *termsAndConditionsOptions = [[GMSNavigationTermsAndConditionsOptions alloc] initWithCompanyName:@"Ride Sharing Co."];
  
  [GMSNavigationServices
    showTermsAndConditionsDialogIfNeededWithOptions:termsAndConditionsOptions
    callback:^(BOOL termsAccepted) {
     if (termsAccepted) {
       // Enable navigation if the user accepts the terms.
       _mapView.navigationEnabled = YES;
     } else {
       // Handle the case when the user rejects the terms and conditions.
     }
   }];

  self.view = _mapView;
}

// TODO: Add navigation code.

@end

Exécutez votre application. Vous devriez voir une carte centrée sur Kirkland, dans l'État de Washington.

Si la carte n'est pas visible, procédez comme suit:

  • Vérifiez que vous avez fourni la bonne clé API.
  • Vérifiez que NavSDK est activé dans la console Cloud.
  • Si le SDK Nav est installé, mais que votre projet n'utilise pas les API du SDK Nav, supprimez-le du binaire.

Si vous êtes un client Services de mobilité

Si vous êtes un client Services de mobilité, renseignez-vous sur la facturation dans la documentation sur la mobilité. Pour en savoir plus sur l'enregistrement, des transactions, consultez Configurer la facturation Pour savoir comment ajouter des ID de transaction à l'implémentation du SDK Navigation, consultez Associez votre utilisation des services aux transactions Mobility.

Étape suivante

Maintenant que vous disposez d'une clé API et d'un projet Xcode, vous pouvez créer et exécuter des applications. Le SDK Navigation pour iOS fournit des tutoriels qui peuvent vous aider pour commencer. Pour en savoir plus, consultez les pages suivantes :