Befolgen Sie diese Anleitung, um das Navigation SDK for iOS in eine iOS-App zu integrieren.
Voraussetzungen
- Bevor Sie das Navigation SDK for iOS verwenden können, benötigen Sie ein Projekt mit einem Rechnungskonto. Außerdem muss das Maps SDK for iOS aktiviert sein. Wir empfehlen, mehrere Projektinhaber und Abrechnungsadministratoren einzurichten, damit immer jemand aus Ihrem Team die entsprechenden Aufgaben übernehmen kann. Weitere Informationen finden Sie unter Google Cloud-Projekt einrichten.
- Wenn Sie ein Projekt mit dem Navigation SDK for iOS erstellen möchten, benötigen Sie Version 15.0 oder höher von Xcode.
- Die mindestens erforderliche iOS-Zielversion für das Navigation SDK ist 14.0.
SDK Installieren
Swift-Paketmanager
Das Navigation SDK kann über den Swift Package Manager installiert werden. Entfernen Sie vor dem Hinzufügen des SDK alle vorhandenen Navigation SDK-Abhängigkeiten.
So fügen Sie das SDK einem neuen oder vorhandenen Projekt hinzu:
-
Öffnen Sie
project
oderworkspace
in Xcode und wählen Sie dann Datei > Paketabhängigkeiten hinzufügen aus. - Geben Sie https://github.com/googlemaps/ios-navigation-sdk als URL ein, drücken Sie die Eingabetaste, um das Paket abzurufen, und klicken Sie auf „Paket hinzufügen“.
-
Wenn Sie eine bestimmte
version
installieren möchten, setzen Sie das Feld Abhängigkeitsregel auf eine der versionsbasierten Optionen. Bei neuen Projekten empfehlen wir, die neueste Version anzugeben und die Option „Exakte Version“ zu verwenden. Klicke anschließend auf „Paket hinzufügen“. -
Prüfen Sie im Fenster Paketprodukte auswählen, ob
GoogleNavigation
zum festgelegtenmain
-Ziel hinzugefügt wird. Klicke anschließend auf „Paket hinzufügen“. -
Um die Installation zu prüfen, gehen Sie zum Bereich
General
Ihres Ziels. Unter Frameworks, Bibliotheken und eingebettete Inhalte sollten die installierten Pakete angezeigt werden. Sie können auch im Abschnitt „Paketabhängigkeiten“ im „Project Navigator“ das Paket und seine Version prüfen.
So aktualisieren Sie die package
für ein vorhandenes Projekt:
- Gehen Sie in Xcode zu „File > Packages > Update To Recent Package Versions“ (Datei > Pakete> Auf neueste Paketversionen aktualisieren).
- Wenn Sie die Installation prüfen möchten, rufen Sie in der Projektnavigation den Bereich Paketabhängigkeiten auf. Dort sehen Sie das Paket und seine Version.
So entfernen Sie vorhandene Navigation SDK-Abhängigkeiten, die mit CocoaPods
hinzugefügt wurden:
- Schließen Sie den Xcode-Arbeitsbereich. Öffnen Sie das Terminal und führen Sie den folgenden Befehl aus:
sudo gem install cocoapods-deintegrate cocoapods-clean pod deintegrate pod cache clean --all
-
Entferne
Podfile
,Podfile.resolved
und den Xcodeworkspace
, wenn du sie ausschließlich für CocoaPods verwendest.
-
Suchen Sie in den Konfigurationseinstellungen Ihres Xcode-Projekts Frameworks, Bibliotheken und eingebettete Inhalte. Verwenden Sie das Minuszeichen(-), um das folgende Framework zu entfernen:
GoogleMaps.xcframework
GoogleMapsBase.xcframework
GoogleMapsCore.xcframework
GoogleNavigation.xcframework
-
Entfernen Sie das
GoogleMaps
-Bundle aus dem Verzeichnis der obersten Ebene Ihres Xcode-Projekts.
CocoaPods
Das Navigation SDK for iOS ist als Pod von CocoaPods verfügbar. CocoaPods ist ein Open-Source-Abhängigkeitsmanager für Cocoa-Projekte in Swift und Objective-C.
Falls du das Tool „CocoaPods“ noch nicht nutzt, installiere es unter macOS, indem du den folgenden Befehl über das Terminal ausführst. Weitere Informationen findest du im Startleitfaden zu CocoaPods.
sudo gem install cocoapods
Erstelle eine Podfile
für das Navigation SDK for iOS und installiere damit die API und die zugehörigen Abhängigkeiten:
- Wenn Sie noch kein Xcode-Projekt haben, erstellen Sie eines und speichern Sie es auf Ihrem lokalen Computer. Wenn Sie mit der iOS-Entwicklung noch nicht vertraut sind:
- Erstellen Sie ein neues Projekt.
- Wählen Sie die Vorlage iOS > App aus.
- Auf dem Bildschirm mit den Projektoptionen:
- Geben Sie den Projektnamen ein.
- Notieren Sie den Wert des Felds Bundle-ID. Mit diesem Wert können Sie den API-Schlüssel unten einschränken.
- Legen Sie das Projekt Interface auf Storyboard fest.
- Legen Sie für Language (Sprache) Swift oder Objective-C fest.
- Erstelle in deinem Projektverzeichnis eine Datei mit dem Namen
Podfile
. In dieser Datei sind die Abhängigkeiten des Projekts definiert. - Bearbeiten Sie die
Podfile
und fügen Sie die Abhängigkeiten zusammen mit ihren versions hinzu. Das folgende Beispiel enthält die Abhängigkeit, die Sie für das Navigation SDK for iOS benötigen: # Cocoapods-Installationsreferenz #source 'https://github.com/CocoaPods/Specs.git' platform :ios, '14.0' target 'YOUR_APPLICATION_TARGET_NAME_HERE' do pod 'GoogleNavigation', '5.3.1' end
Führen Sie regelmäßigpod outdated
aus, um neuere Versionen zu erkennen. Führen Sie bei Bedarf ein Upgrade auf die neueste Version durch. - Speichere die
Podfile
. Öffnen Sie ein Terminal und rufen Sie das Verzeichnis auf, das
Podfile
enthält:cd <path-to-project>
Führe den Befehl
pod install
aus. Dadurch werden die inPodfile
angegebenen APIs sowie alle Abhängigkeiten installiert.pod install
Schließe Xcode und öffne dann mit einem Doppelklick die Datei
.xcworkspace
deines Projekts, um Xcode wieder zu starten. Ab jetzt musst du das Projekt über die Datei.xcworkspace
aufrufen.
So aktualisieren Sie die API für ein vorhandenes Projekt:
- Öffnen Sie ein Terminal und rufen Sie das Projektverzeichnis mit der
Podfile
auf. - Führe den Befehl
pod update
aus. Dadurch werden alle inPodfile
angegebenen APIs auf die neueste Version aktualisiert.
Manuelle Installation
In diesem Leitfaden erfahren Sie, wie Sie das XCFrameworks mit dem Navigation SDK for iOS und das Maps SDK for iOS manuell zu Ihrem Projekt hinzufügen und Ihre Build-Einstellungen in Xcode konfigurieren. Ein XCFramework ist ein Binärpaket, das Sie auf mehreren Plattformen verwenden können, einschließlich Maschinen mit dem M1-Chipsatz.
So installieren Sie das XCFrameworks für das Navigation SDK for iOS und das Maps SDK for iOS:
- Laden Sie die folgenden SDK-Binärdateien und Ressourcendateien herunter:
- Starte Xcode und öffne ein vorhandenes oder erstelle ein neues Projekt. Wenn Sie mit iOS noch nicht vertraut sind, erstellen Sie ein neues Projekt und wählen Sie die Vorlage für iOS-Apps aus.
- Entfernen Sie alle vorhandenen Referenzen zu Maps, Navigation und Places aus dem Projekt.
- Ziehen Sie die folgenden XCFrameworks in Ihr Projekt unter Frameworks, Libraries and Integrierte Inhalte, um sowohl das Maps SDK als auch das Navigation SDK zu installieren. Wählen Sie Copy items if needed aus, wenn Sie dazu aufgefordert werden:
GoogleMaps.xcframework
GoogleMapsBase.xcframework
GoogleMapsCore.xcframework
GoogleNavigation.xcframework
- Ziehen Sie
GoogleMaps.bundle
aus den heruntergeladenen GoogleMapsResources in das Verzeichnis der obersten Ebene Ihres Xcode-Projekts. Wenn Sie dazu aufgefordert werden, achten Sie darauf, dass Copy items if needed (Elemente bei Bedarf kopieren) ausgewählt ist. - Ziehen Sie
GoogleNavigation.bundle
aus der heruntergeladenen GoogleNavigationResources in das Verzeichnis der obersten Ebene Ihres Xcode-Projekts. Wenn Sie dazu aufgefordert werden, achten Sie darauf, dass Copy items into theziel group' Ordner (Elemente in Ordner der Zielgruppe kopieren) ausgewählt ist. - Wählen Sie Ihr Projekt im Project Navigator und dann das Ziel Ihrer Anwendung aus.
- Öffnen Sie den Tab Build Phase (Build-Phasen) und fügen Sie unter Link Binary with Libraries (Binärdatei mit Bibliotheken verknüpfen) die folgenden Frameworks und Bibliotheken hinzu:
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
- Wählen Sie im Ziel Ihrer Anwendung den Tab Funktionen aus, aktivieren Sie Hintergrundmodi und aktivieren Sie folgende Modi:
- Audio, AirPlay und Bild im Bild
- Standortaktualisierungen
- Wählen Sie Ihr Projekt anstelle eines bestimmten Ziels aus und öffnen Sie den Tab Build Settings (Build-Einstellungen). Fügen Sie im Bereich Weitere Verknüpfungs-Flags
‑ObjC
für debug und release hinzu. Falls diese Einstellungen nicht angezeigt werden, ändere den Filter in der Leiste Build Settings (Build-Einstellungen) von Basic in All. - Öffnen Sie
Info.plist
und fügen Sie die folgenden Schlüssel/Wert-Paare hinzu:- Schlüssel:
NSLocationWhenInUseUsageDescription
(Datenschutz – Beschreibung der Verwendung des Standorts)
Wert: „Diese App benötigt die Berechtigung, deinen Standort für die detaillierte Routenführung zu verwenden.“ - Schlüssel:
NSLocationAlwaysAndWhenInUseUsageDescription
(Datenschutz – immer und wenn die Nutzung verwendet wird, Beschreibung)
Wert: „Diese App benötigt die Berechtigung, deinen Standort für die detaillierte Routenführung zu verwenden.“
- Schlüssel:
Apple Privacy Manifest-Datei hinzufügen
Apple verlangt für Apps im App Store Details zum App-Datenschutz. Auf der Seite mit den Datenschutzinformationen für den Apple App Store finden Sie aktuelle Informationen und weitere Informationen.
- Laden Sie das Privacy Manifest-Bundle für das Navigation SDK for iOS herunter: GoogleNavigationPrivacy.
- Extrahieren Sie die Datei, um auf
GoogleNavigationPrivacy.bundle
zuzugreifen. - Fügen Sie
GoogleNavigationPrivacy.bundle
mit einer dieser Methoden in die Xcode-Projektnavigation ein. Das Kästchen „Zu Zielen hinzufügen“ muss für das Ziel Ihrer App aktiviert sein. Nach dem Hinzufügen wird die PrivacyInfo-Datei im Projektnavigator angezeigt und Sie können sich die Werte ansehen. - Prüfen Sie, ob das Datenschutzmanifest hinzugefügt wurde. Erstellen Sie dazu ein Archiv Ihrer App und generieren Sie aus dem Archiv einen Datenschutzbericht.
API-Schlüssel in Projekt einfügen
Die folgenden Beispiele zeigen, wie Sie den API-Schlüssel zu Ihrem Projekt in Xcode hinzufügen:
Swift
Füge deinen API-Schlüssel folgendermaßen in AppDelegate.swift
ein:
- Fügen Sie die folgenden Importanweisungen hinzu:
import GoogleMaps import GoogleNavigation
- Fügen Sie der Methode
application(_:didFinishLaunchingWithOptions:)
Folgendes hinzu:GMSServices.provideAPIKey("YOUR_API_KEY")
Objective-C
Füge deinen API-Schlüssel folgendermaßen in AppDelegate.m
ein:
- Fügen Sie die folgenden Importanweisungen hinzu:
@import GoogleMaps; @import GoogleNavigation;
- Fügen Sie der Methode
application:didFinishLaunchingWithOptions:
Folgendes hinzu:[GMSServices provideAPIKey:@"YOUR_API_KEY"];
Karte hinzufügen
Mit diesem Code wird veranschaulicht, wie Sie einem vorhandenen ViewController
eine einfache Karte hinzufügen, einschließlich einiger Anfangseinstellungen für die Navigation.
Bevor die Navigation aktiviert werden kann, muss der Nutzer den Nutzungsbedingungen zustimmen. Wenn du den Nutzer dazu auffordern möchtest, rufe GMSNavigationServices.showTermsAndConditionsDialogIfNeeded()
auf und prüfe, ob die Nutzungsbedingungen akzeptiert wurden. Wenn der Nutzer die Nutzungsbedingungen ablehnt, hat mapView.isNavigationEnabled = true
keine Auswirkungen und mapView.navigator
ist null.
Swift
import UIKit import GoogleNavigation class ViewController: UIViewController { var mapView: GMSMapView! var locationManager: CLLocationManager! override func loadView() { locationManager = CLLocationManager() locationManager.requestAlwaysAuthorization() let camera = GMSCameraPosition.camera(withLatitude: 47.67, longitude: -122.20, zoom: 14) mapView = GMSMapView.map(withFrame: CGRect.zero, camera: camera) // Show the terms and conditions. let companyName = "Ride Sharing Co." GMSNavigationServices.showTermsAndConditionsDialogIfNeeded( withCompanyName: companyName) { 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]; _mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera]; // Show the terms and conditions. NSString *companyName = @"Ride Sharing Co."; [GMSNavigationServices showTermsAndConditionsDialogIfNeededWithCompanyName:companyName 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
Führen Sie die Anwendung aus. Es sollte eine Karte angezeigt werden, auf der Kirkland in der Mitte liegt. Wenn die Karte nicht sichtbar ist, prüfen Sie, ob Sie den richtigen API-Schlüssel angegeben haben.
Wenn Sie Mobility Services-Kunde sind
Wenn Sie Mobility Services-Kunde sind, finden Sie in der Mobilitätsdokumentation Informationen zur Abrechnung. Weitere Informationen zum Aufzeichnen von Transaktionen finden Sie unter Abrechnung einrichten. Informationen zum Hinzufügen von Transaktions-IDs zu Ihrer Navigation SDK-Implementierung finden Sie unter Dienstnutzung mit Mobilitätstransaktionen verknüpfen.