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

Schritt 2: Xcode-Projekt erstellen und das Maps SDK for iOS installieren

Swift-Paketmanager

Das Maps SDK for iOS kann über den Swift Package Manager installiert werden. Entfernen Sie vor dem Hinzufügen des SDK alle vorhandenen Maps SDK for iOS-Abhängigkeiten.

So fügen Sie das SDK einem neuen oder vorhandenen Projekt hinzu:

  1. Öffnen Sie project oder workspace in Xcode und wählen Sie dann Datei > Paketabhängigkeiten hinzufügen aus.
  2. Geben Sie https://github.com/googlemaps/ios-maps-sdk als URL ein, drücken Sie die Eingabetaste, um das Paket abzurufen, und klicken Sie auf „Paket hinzufügen“.
  3. 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“.
  4. Prüfen Sie im Fenster Paketprodukte auswählen, ob GoogleMaps, GoogleMapsBase und GoogleMapsCore zum festgelegten main-Ziel hinzugefügt werden. Klicke anschließend auf „Paket hinzufügen“.
  5. 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:

  1. Gehen Sie in Xcode zu „File > Packages > Update To Recent Package Versions“ (Datei > Pakete> Auf neueste Paketversionen aktualisieren).
  2. 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 Maps SDK for iOS-Abhängigkeiten, die mit CocoaPods hinzugefügt wurden:

  1. 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
  2. Entferne Podfile, Podfile.resolved und den Xcode workspace, wenn du sie ausschließlich für CocoaPods verwendest.

So entfernen Sie ein vorhandenes manuell installiertes Maps SDK for iOS:
  1. 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
  2. Entfernen Sie das GoogleMaps-Bundle aus dem Verzeichnis der obersten Ebene Ihres Xcode-Projekts.

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 den Wert des Felds Bundle-ID. Mit diesem Wert können Sie den API-Schlüssel unten einschränken.
      3. Legen Sie das Projekt Interface auf Storyboard fest.
      4. Legen Sie für Language (Sprache) Swift oder Objective-C fest.
  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 versions hinzu. Das folgende Beispiel enthält die Abhängigkeit, die Sie für das Maps SDK for iOS benötigen:
    source 'https://github.com/CocoaPods/Specs.git'
    
    platform :ios, '15.0'
    
    target 'YOUR_APPLICATION_TARGET_NAME_HERE' do
      pod 'GoogleMaps', '8.4.0'
    end
    
    Führen Sie regelmäßig pod outdated aus, um festzustellen, ob eine neuere Version verfügbar ist. So ist immer die aktuelle Version verfügbar. Führen Sie gegebenenfalls 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 mit der Podfile auf.
  2. Führe den Befehl pod update aus. Dadurch werden alle in Podfile angegebenen APIs auf die neueste Version aktualisiert.

Manuelle Installation

In diesem Leitfaden erfahren Sie, wie Sie das XCFrameworks mit dem 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 Computern mit Apple Silicon.
  1. Laden Sie die folgenden SDK-Binärdateien und Ressourcendateien herunter:
  2. Entpacken Sie die ZIP-Dateien, um auf XCFrameworks und Ressourcen 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 den Wert des Felds Bundle-ID. Mit diesem Wert können Sie den API-Schlüssel unten einschränken.
      3. Legen Sie das Projekt Interface auf Storyboard fest.
      4. Legen Sie für Language (Sprache) Swift oder Objective-C fest.
  4. Öffnen Sie den Tab Allgemein. Ziehen Sie die folgenden XCFrameworks in Ihr Projekt unter Frameworks, Bibliotheken und eingebettete Inhalte. Wählen Sie für jedes XCFramework die Option Nicht einbetten aus:
    • GoogleMaps.xcframework
    • GoogleMapsBase.xcframework
    • GoogleMapsCore.xcframework
  5. Kopieren Sie die GoogleMaps.bundle aus den heruntergeladenen GoogleMapsResources in das Verzeichnis der obersten Ebene Ihres Xcode-Projekts. Wählen Sie bei entsprechender Aufforderung Copy items into target group's post (Elemente in Ordner der Zielgruppe kopieren) aus.
  6. Wählen Sie Ihr Projekt im Project Navigator und dann das Ziel Ihrer Anwendung aus.
  7. Öffnen Sie den Tab Build Phases (Build-Phasen) für das Ziel Ihrer Anwendung. Fügen Sie unter Link Binary with Libraries (Binärdatei mit Bibliotheken verknüpfen) die folgenden Frameworks und Bibliotheken hinzu:
    • Accelerate.framework
    • Contacts.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
  8. Wählen Sie Ihr Projekt anstelle eines bestimmten Ziels aus und öffnen Sie den Tab Build Settings (Build-Einstellungen). Fügen Sie im Abschnitt Linking – General -> Other Linker Flags für „Debug“ und „Release“ -ObjC hinzu. Wenn diese Einstellungen nicht angezeigt werden, ändere den Filter in der Leiste Build Settings von Basic in All.

  9. Informationen zum Installieren des XCFrameworks für das Places SDK for iOS finden Sie unter Erste Schritte mit dem Places SDK for iOS.

Schritt 3: API-Schlüssel zum Projekt hinzufügen

Unter API-Schlüssel anfordern haben Sie einen API-Schlüssel für Ihre App generiert. Diesen Schlüssel müssen Sie jetzt Ihrem Xcode-Projekt hinzufügen.

Ersetzen Sie YOUR_API_KEY in den folgenden Beispielen durch Ihren API-Schlüssel.

erhältst du weitere Informationen.

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:) unter Verwendung Ihres API-Schlüssels Folgendes hinzu:
    GMSServices.provideAPIKey("YOUR_API_KEY")
  3. Wenn Sie auch die Places API verwenden, fügen Sie den Schlüssel noch einmal so 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: unter Verwendung Ihres API-Schlüssels Folgendes hinzu:
    [GMSServices provideAPIKey:@"YOUR_API_KEY"];
  3. Wenn Sie auch die Places API verwenden, fügen Sie den Schlüssel noch einmal so hinzu:
    [GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];

Schritt 4: Karte hinzufügen

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 options = GMSMapViewOptions()
        options.camera = GMSCameraPosition.camera(withLatitude: -33.86, longitude: 151.20, zoom: 6.0)
        options.frame = self.view.bounds

        let mapView = GMSMapView(options: options)
        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.
  GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
  options.camera = [GMSCameraPosition cameraWithLatitude:-33.8683
                                                        longitude:151.2086
                                                             zoom:6];
  options.frame = self.view.bounds;
  GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];

  [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

Schritt 5 (optional): Von der API verwendete URL-Schemas deklarieren

Ab iOS 9 und Xcode 7 können Apps die URL-Schemas, die sie öffnen möchten, durch Angabe der Schemas in der Datei Info.plist der App deklarieren. Das Maps SDK for iOS öffnet die mobile Google Maps App, wenn der Nutzer auf das Google-Logo auf der Karte klickt. Daher kann Ihre App die entsprechenden URL-Schemas deklarieren.

Zum Deklarieren der URL-Schemas, die vom Maps SDK for iOS verwendet werden, fügen Sie Ihrem Info.plist die folgenden Zeilen hinzu:

LSApplicationQueriesSchemes googlechromes comgooglemaps

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: fehlgeschlagen für URL: "comgooglemaps://" - Fehler: "Diese App darf das Schema comgooglemaps nicht abfragen" -canOpenURL: fehlgeschlagen für URL: "googlechromes://" - Fehler: "Diese App darf nicht nach dem Schema googlechromes abfragen"

Fügen Sie die Deklaration zu Info.plist hinzu, um diese Fehler zu vermeiden.

Nächste Schritte

Da Sie nun einen API-Schlüssel und ein Xcode-Projekt haben, können Sie Apps erstellen und ausführen. Das Navigation SDK for iOS bietet viele Anleitungen und Beispiel-Apps, die Ihnen den Einstieg erleichtern. Weitere Informationen finden Sie hier: