Xcode-Projekt einrichten

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:

  • Xcode Version 14.0 oder höher
  • CocoaPods

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:

  1. 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:
    1. Erstellen Sie ein neues Projekt.
    2. Wählen Sie die Vorlage iOS > App aus.
    3. Auf dem Bildschirm mit den Projektoptionen:
      1. Geben Sie den Projektnamen ein.
      2. Notieren Sie sich den Wert des Felds Bundle Identifier. Mit diesem Wert können Sie Ihren API-Schlüssel unten einschränken.
      3. Legen Sie für das Projekt Interface (Benutzeroberfläche) ein Storyboard fest.
      4. Setzen Sie Language (Sprache) auf Swift oder Objective-C.
  2. Erstelle in deinem Projektverzeichnis eine Datei mit dem Namen Podfile. In dieser Datei sind die Abhängigkeiten des Projekts definiert.
  3. 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äßig pod 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.
  4. Speichere die Podfile.
  5. Öffnen Sie ein Terminal und rufen Sie das Verzeichnis auf, das Podfile enthält:

    cd <path-to-project>
  6. Führe den Befehl pod install aus. Dadurch werden die in der Podfile angegebenen APIs und ggf. zugehörige Abhängigkeiten installiert.

    pod install
  7. 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:

  1. Öffnen Sie ein Terminal und rufen Sie das Projektverzeichnis auf, das Podfile enthält.
  2. Führe den Befehl pod update aus. Dadurch werden alle in Podfile 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.

  1. Lade die SDK-Quelldateien herunter: GoogleMaps-8.2.0.
  2. Entpacke die Quelldateien. Öffnen Sie den Ordner Frameworks, um auf XCFramework zuzugreifen.
  3. 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:
    1. Erstellen Sie ein neues Projekt.
    2. Wählen Sie die Vorlage iOS > App aus.
    3. Auf dem Bildschirm mit den Projektoptionen:
      1. Geben Sie den Projektnamen ein.
      2. Notieren Sie sich den Wert des Felds Bundle Identifier. Mit diesem Wert können Sie Ihren API-Schlüssel unten einschränken.
      3. Legen Sie für das Projekt Interface (Benutzeroberfläche) ein Storyboard fest.
      4. Setzen Sie Language (Sprache) auf Swift oder Objective-C.
  4. 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
  5. Klicken Sie mit der rechten Maustaste in Ihrem Projekt auf GoogleMaps.xcframework und wählen Sie Im Finder anzeigen aus.
  6. Ziehen Sie GoogleMaps.bundle aus dem Ordner ios-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.
  7. Wählen Sie Ihr Projekt im Project Navigator und dann das Ziel Ihrer Anwendung aus.
  8. Ö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
  9. 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.

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

  1. Lade die SDK-Quelldateien herunter: GoogleMaps-8.2.0.
  2. Entpacke die Quelldateien.
  3. 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:
    1. Erstellen Sie ein neues Projekt.
    2. Wählen Sie die Vorlage iOS > App aus.
    3. Auf dem Bildschirm mit den Projektoptionen:
      1. Geben Sie den Projektnamen ein.
      2. Notieren Sie sich den Wert des Felds Bundle Identifier. Mit diesem Wert können Sie Ihren API-Schlüssel unten einschränken.
      3. Legen Sie für das Projekt Interface (Benutzeroberfläche) ein Storyboard fest.
      4. Setzen Sie Language (Sprache) auf Swift oder Objective-C.
  4. 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
  5. Klicke in deinem Projekt mit der rechten Maustaste auf GoogleMaps.xcframework und wähle Show In Finder (In Finder zeigen) aus.
  6. Ziehen Sie GoogleMaps.bundle aus dem Ordner Resources 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.
  7. Wähle im Project Navigator dein Projekt aus und gib dann das Ziel deiner App an.
  8. Ö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
  9. 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).

  10. 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:

  1. Fügen Sie die folgende Importanweisung hinzu:
    import GoogleMaps
  2. Fügen Sie der Methode application(_:didFinishLaunchingWithOptions:) mithilfe Ihres API-Schlüssels Folgendes hinzu:
    GMSServices.provideAPIKey("YOUR_API_KEY")
  3. 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:

  1. Fügen Sie die folgende Importanweisung hinzu:
    @import GoogleMaps;
  2. Fügen Sie der Methode application:didFinishLaunchingWithOptions: mithilfe Ihres API-Schlüssels Folgendes hinzu:
    [GMSServices provideAPIKey:@"YOUR_API_KEY"];
  3. 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:

  1. Fügen Sie Methoden im standardmäßigen ViewController Ihrer Anwendung hinzu oder aktualisieren Sie sie, um eine Instanz von GMSMapView 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
    
          
  2. 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:

LSApplicationQueriesSchemes-Konfiguration in Xcode

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: