Nachdem Sie die Abrechnung aktiviert und einen API-Schlüssel erstellt haben, können Sie das Xcode-Projekt einrichten, mit dem Sie Ihre Anwendung entwickeln.
Für jeden Release sind Versionshinweise verfügbar.
Schritt 1: Erforderliche Software installieren
Wenn Sie ein Projekt mit dem Maps SDK for iOS erstellen möchten, müssen Sie Folgendes herunterladen und installieren:
Schritt 2: Xcode-Projekt erstellen und Maps SDK for iOS installieren
Mit CocoaPods
Das Maps 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 (in englischer Sprache).
sudo gem install cocoapods
Erstelle eine Podfile
für das Maps SDK for iOS und verwende sie, um die API und die zugehörigen Abhängigkeiten zu installieren:
- 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 sich den Wert des Felds Bundle Identifier. Mit diesem Wert können Sie Ihren API-Schlüssel unten einschränken.
- Legen Sie für das Projekt Interface (Benutzeroberfläche) ein Storyboard fest.
- Setzen Sie Language (Sprache) auf Swift oder Objective-C.
- 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 Versionen hinzu. Hier ist ein Beispiel mit der Abhängigkeit, die Sie für das Maps SDK for iOS benötigen:source 'https://github.com/CocoaPods/Specs.git' platform :ios, '14.0' target 'YOUR_APPLICATION_TARGET_NAME_HERE' do pod 'GoogleMaps', '8.2.0' end
Führen Sie regelmäßigpod outdated
aus, um zu erkennen, ob eine neuere Version verfügbar ist. So haben Sie immer die aktuelle Version. 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 in derPodfile
angegebenen APIs und ggf. zugehörige 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 auf, das
Podfile
enthält. - Führe den Befehl
pod update
aus. Dadurch werden alle inPodfile
angegebenen APIs auf die neueste Version aktualisiert.
XCFramework installieren
Ein XCFramework ist ein binäres Paket, das Sie zur Installation des Maps SDK for iOS auf mehreren Plattformen, einschließlich Computern, die den M1-Chipsatz verwenden, verwenden können. In diesem Leitfaden erfahren Sie, wie Sie das XCFramework mit dem Maps SDK for iOS zu Ihrem Projekt hinzufügen und Ihre Build-Einstellungen in Xcode konfigurieren.
Manuell
In diesem Leitfaden erfahren Sie, wie Sie das Maps SDK for iOS Ihrem Projekt manuell hinzufügen und Ihre Build-Einstellungen in Xcode konfigurieren.
- Lade die SDK-Quelldateien herunter: GoogleMaps-8.2.0.
- Entpacke die Quelldateien. Öffnen Sie den Ordner Frameworks, um auf XCFramework zuzugreifen.
- 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 sich den Wert des Felds Bundle Identifier. Mit diesem Wert können Sie Ihren API-Schlüssel unten einschränken.
- Legen Sie für das Projekt Interface (Benutzeroberfläche) ein Storyboard fest.
- Setzen Sie Language (Sprache) auf Swift oder Objective-C.
- Ziehen Sie die folgenden XCFrameworks in Ihr Projekt unter Frameworks, Bibliotheken und eingebettete Inhalte. Wählen Sie für jedes XCFramework die Option Do Not Embed (Nicht einbetten) aus:
GoogleMaps-x.x.x/GoogleMapsBase.xcframework
GoogleMaps-x.x.x/GoogleMaps.xcframework
GoogleMaps-x.x.x/GoogleMapsCore.xcframework
- (Nur für Kunden mit Premiumoption)
GoogleMaps-x.x.x/GoogleMapsM4B.xcframework
- Klicken Sie mit der rechten Maustaste in Ihrem Projekt auf
GoogleMaps.xcframework
und wählen Sie Im Finder anzeigen aus. - Ziehen Sie
GoogleMaps.bundle
aus dem Ordnerios-arm64_x86_64-simulator/GoogleMaps.framework/Resources
in das Verzeichnis der obersten Ebene Ihres Xcode-Projekts. Achten Sie bei entsprechender Aufforderung darauf, dass Copy items if needed (Elemente bei Bedarf kopieren) nicht ausgewählt ist. - Wählen Sie Ihr Projekt im Project Navigator und dann das Ziel Ihrer Anwendung aus.
- Öffnen Sie den Tab Build Phases (Build-Phasen) für das Ziel Ihrer Anwendung und fügen Sie unter Link Binary with Libraries (Binärdatei mit Bibliotheken verknüpfen) die folgenden Frameworks und Bibliotheken hinzu:
Accelerate.framework
CoreData.framework
CoreGraphics.framework
CoreImage.framework
CoreLocation.framework
CoreTelephony.framework
CoreText.framework
GLKit.framework
ImageIO.framework
libc++.tbd
libz.tbd
Metal.framework
OpenGLES.framework
QuartzCore.framework
SystemConfiguration.framework
UIKit.framework
Wählen Sie Ihr Projekt anstelle eines bestimmten Ziels aus und öffnen Sie den Tab Build Settings (Build-Einstellungen). Fügen Sie im Abschnitt Other Linker Flags den Wert
-ObjC
hinzu. Wenn diese Einstellungen nicht angezeigt werden, ändern Sie den Filter in der Leiste Build-Einstellungen von Basic in All.Informationen zum Installieren des Places SDK for iOS XCFramework finden Sie unter Erste Schritte mit dem Places SDK for iOS.
Mit Karthago
Manuell einbinden
In diesem Leitfaden erfahren Sie, wie Sie das Maps SDK for iOS Ihrem Projekt manuell hinzufügen und Ihre Build-Einstellungen in Xcode konfigurieren.
- Lade die SDK-Quelldateien herunter: GoogleMaps-8.2.0.
- Entpacke die Quelldateien.
- 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 sich den Wert des Felds Bundle Identifier. Mit diesem Wert können Sie Ihren API-Schlüssel unten einschränken.
- Legen Sie für das Projekt Interface (Benutzeroberfläche) ein Storyboard fest.
- Setzen Sie Language (Sprache) auf Swift oder Objective-C.
- Ziehen Sie die folgenden Bundles in Ihr Projekt: (Wenn Sie dazu aufgefordert werden, wählen Sie Copy items if needed, please use the same version as above.)
GoogleMaps-x.x.x/Base/Frameworks/GoogleMapsBase.xcframework
GoogleMaps-x.x.x/Maps/Frameworks/GoogleMaps.xcframework
GoogleMaps-x.x.x/Maps/Frameworks/GoogleMapsCore.xcframework
- (Nur für Kunden mit Premiumoption)
GoogleMaps-x.x.x/M4B/Frameworks/GoogleMapsM4B.xcframework
- Klicke in deinem Projekt mit der rechten Maustaste auf
GoogleMaps.xcframework
und wähle Show In Finder (In Finder zeigen) aus. - Ziehen Sie
GoogleMaps.bundle
aus dem OrdnerResources
in das Verzeichnis der obersten Ebene Ihres Xcode-Projekts. Achten Sie bei entsprechender Aufforderung darauf, dass Copy items into destination group's folder (Elemente in Ordner der Zielgruppe kopieren) nicht ausgewählt ist. - Wähle im Project Navigator dein Projekt aus und gib dann das Ziel deiner App an.
- Öffnen Sie den Tab Build Phases (Build-Phasen) für das Ziel Ihrer Anwendung und fügen Sie unter Link Binary with Libraries (Binärdatei mit Bibliotheken verknüpfen) die folgenden Frameworks und Bibliotheken hinzu:
Accelerate.framework
CoreData.framework
CoreGraphics.framework
CoreImage.framework
CoreLocation.framework
CoreTelephony.framework
CoreText.framework
GLKit.framework
ImageIO.framework
libc++.tbd
libz.tbd
Metal.framework
OpenGLES.framework
QuartzCore.framework
SystemConfiguration.framework
UIKit.framework
Wähle statt eines bestimmten Ziels dein Projekt aus und öffne den Tab Build Settings (Build-Einstellungen). Gib im Bereich Other Linker Flags (Weitere Verknüpfungsmerker) den Code
-ObjC
ein. Falls die Einstellungen nicht angezeigt werden, filtere in der Leiste Build Settings nicht mehr nach Basic (Standard), sondern nach All (Alle).Informationen zum Installieren des Places SDK for iOS findest du im Startleitfaden zum Places SDK for iOS (in englischer Sprache).
Schritt 3: API-Schlüssel zum Projekt hinzufügen
Unter API-Schlüssel abrufen haben Sie einen API-Schlüssel für Ihre Anwendung generiert. Fügen Sie diesen Schlüssel nun Ihrem Xcode-Projekt hinzu.
Ersetzen Sie YOUR_API_KEY
in den folgenden Beispielen durch Ihren API-Schlüssel.
Swift
Füge deinen API-Schlüssel folgendermaßen in AppDelegate.swift
ein:
- Fügen Sie die folgende Importanweisung hinzu:
import GoogleMaps
- Fügen Sie der Methode
application(_:didFinishLaunchingWithOptions:)
mithilfe Ihres API-Schlüssels Folgendes hinzu:GMSServices.provideAPIKey("YOUR_API_KEY")
- Wenn Sie auch die Places API verwenden, fügen Sie Ihren Schlüssel noch einmal wie hier gezeigt hinzu:
GMSPlacesClient.provideAPIKey("YOUR_API_KEY")
Objective-C
Füge deinen API-Schlüssel folgendermaßen in AppDelegate.m
ein:
- Fügen Sie die folgende Importanweisung hinzu:
@import GoogleMaps;
- Fügen Sie der Methode
application:didFinishLaunchingWithOptions:
mithilfe Ihres API-Schlüssels Folgendes hinzu:[GMSServices provideAPIKey:@"YOUR_API_KEY"];
- Wenn Sie auch die Places API verwenden, fügen Sie Ihren Schlüssel noch einmal wie hier gezeigt hinzu:
[GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];
Schritt 4 (optional): Metal-Rendering-Framework aktivieren
Mit dem Maps SDK for iOS können Sie das Metal-Rendering-Framework von Apple aktivieren. Wenn Sie den Metal-Renderer in Ihrer App ausprobieren möchten, rufen Sie [GMSServices
setMetalRendererEnabled:YES]
in Objective-C oder GMSServices.setMetalRendererEnabled(true)
in Swift auf, bevor Sie Kartenansichten erstellen.
Wenn Sie das SDK manuell installieren, müssen Sie auch Metal.framework
in Xcode hinzufügen.
Schritt 5: Eine Karte hinzufügen
Mit dem folgenden Code wird einem vorhandenen ViewController
eine einfache Karte hinzugefügt:
Fügen Sie Methoden im standardmäßigen
ViewController
Ihrer Anwendung hinzu oder aktualisieren Sie sie, um eine Instanz vonGMSMapView
zu erstellen und zu initialisieren.Swift
/* * Copyright 2020 Google Inc. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this * file except in compliance with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF * ANY KIND, either express or implied. See the License for the specific language governing * permissions and limitations under the License. */ import UIKit import GoogleMaps class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. // Create a GMSCameraPosition that tells the map to display the // coordinate -33.86,151.20 at zoom level 6. let camera = GMSCameraPosition.camera(withLatitude: -33.86, longitude: 151.20, zoom: 6.0) let mapView = GMSMapView.map(withFrame: self.view.frame, camera: camera) self.view.addSubview(mapView) // Creates a marker in the center of the map. let marker = GMSMarker() marker.position = CLLocationCoordinate2D(latitude: -33.86, longitude: 151.20) marker.title = "Sydney" marker.snippet = "Australia" marker.map = mapView } }
Objective-C
/* * Copyright 2020 Google Inc. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this * file except in compliance with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF * ANY KIND, either express or implied. See the License for the specific language governing * permissions and limitations under the License. */ #import "ViewController.h" #import <GoogleMaps/GoogleMaps.h> @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. // Create a GMSCameraPosition that tells the map to display the // coordinate -33.86,151.20 at zoom level 6. GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.86 longitude:151.20 zoom:6]; GMSMapView *mapView = [GMSMapView mapWithFrame:self.view.frame camera:camera]; mapView.myLocationEnabled = YES; [self.view addSubview:mapView]; // Creates a marker in the center of the map. GMSMarker *marker = [[GMSMarker alloc] init]; marker.position = CLLocationCoordinate2DMake(-33.86, 151.20); marker.title = @"Sydney"; marker.snippet = @"Australia"; marker.map = mapView; } @end
Führen Sie die Anwendung aus. Sie sollten eine Karte mit einer einzelnen Markierung sehen, die auf Sydney, Australien, zentriert ist. Wenn Sie die Markierung sehen, aber die Karte nicht sichtbar ist, prüfen Sie, ob Sie Ihren API-Schlüssel angegeben haben.
Schritt 6 (optional): Von der API verwendete URL-Schemas angeben
Ab iOS 9 und Xcode 7 können Apps die URL-Schemas deklarieren, die sie öffnen möchten. Dazu geben sie die Schemas in der Datei Info.plist
der App an. Über das Maps SDK for iOS wird die mobile Google Maps App geöffnet, wenn der Nutzer auf der Karte auf das Google-Logo klickt. Dadurch können in Ihrer App die relevanten URL-Schemas deklariert werden.
Wenn Sie die vom Maps SDK for iOS verwendeten URL-Schemas deklarieren möchten, fügen Sie Ihrem Info.plist
die folgenden Zeilen hinzu:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>googlechromes</string>
<string>comgooglemaps</string>
</array>
Im folgenden Screenshot wird die Konfiguration in der Benutzerschnittstelle von Xcode gezeigt:
Ohne die obige Deklaration können die folgenden Fehler auftreten, wenn der Nutzer auf das Google-Logo auf der Karte tippt:
-canOpenURL: failed for URL: "comgooglemaps://" - error: "This app is not allowed to query for scheme comgooglemaps"
-canOpenURL: failed for URL: "googlechromes://" - error: "This app is not allowed to query for scheme googlechromes"
Fügen Sie die Deklaration wie oben beschrieben zu Info.plist
hinzu, um diese Fehler zu beheben.
Nächste Schritte
Da Sie nun einen API-Schlüssel und ein Xcode-Projekt haben, können Sie Anwendungen erstellen und ausführen. Das Maps SDK for iOS bietet viele Anleitungen und Beispiel-Apps, die Ihnen den Einstieg erleichtern. Weitere Informationen finden Sie hier: