Xcode-Projekt einrichten

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

Führen Sie die Schritte in dieser Anleitung aus, um das Places SDK for iOS herunterzuladen, Ihrer Bibliothek die Bibliothek und die zugehörigen Abhängigkeiten hinzuzufügen und einen kostenlosen API-Schlüssel zu erhalten.

Für jeden Release sind Versionshinweise verfügbar.

Schritt 1: Neueste Version von Xcode herunterladen

Zum Erstellen eines Projekts mit dem Places SDK for iOS benötigen Sie Folgendes:

  1. Xcode Version 13.0 oder höher.
  2. CocoaPods oder Carthage

Schritt 2: SDK installieren

So installieren Sie die API in einem neuen Projekt:

Mit CocoaPods

Das Places SDK for iOS ist als CocoaPod-Pod GooglePlaces verfügbar, der alle Places-Funktionen enthält.

CocoaPods ist ein Open-Source-Abhängigkeitsmanager für Cocoa-Projekte in Swift und Objective-C. Wenn Sie das CocoaPods-Tool noch nicht haben, installieren Sie es unter macOS, indem Sie den folgenden Befehl über das Terminal ausführen. Weitere Informationen findest du im CocoaPods-Startleitfaden.

sudo gem install cocoapods

Erstellen Sie einen Podfile für das Places SDK for iOS und installieren Sie damit das SDK und die zugehörigen Abhängigkeiten:

  1. Falls du noch kein Xcode-Projekt hast, erstelle eines und speichere es auf dem lokalen Rechner. Wenn Sie noch nicht mit der iOS-Entwicklung vertraut sind, erstellen Sie ein neues Projekt und wählen Sie die Vorlage für iOS-Apps aus.
  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 Ihre Abhängigkeiten mit ihren Versionen hinzu. Im folgenden Beispiel sind der Name des Anwendungsziels und der Name des Pods GooglePlaces angegeben:
    source 'https://github.com/CocoaPods/Specs.git'
    
    platform :ios, '13.0'
    
    target 'YOUR_APPLICATION_TARGET_NAME_HERE' do
      pod 'GooglePlaces', '7.2.0'
    end
    Führen Sie pod outdated regelmäßig aus, um festzustellen, ob eine neuere Version vorhanden ist, damit Sie immer auf dem neuesten Stand sind.
  4. Speichere die Podfile.
  5. Öffne ein Terminalfenster und suche das Verzeichnis mit der Podfile:

    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 die Podfile enthält.
  2. Führe den Befehl pod update aus. Dadurch werden alle in Podfile angegebenen APIs auf die neueste Version aktualisiert.

Karthago verwenden

Das Places SDK for iOS kann mit Carthage verwendet werden, einem einfachen, dezentralisierten Abhängigkeitsmanager für Swift- und Objective-C-Cocoa-Projekte.

  1. Installieren Sie Karthago. Es gibt mehrere Methoden. Eine genaue Anleitung findest du in der Readme-Datei für Karthago.
  2. Falls du noch kein Xcode-Projekt hast, erstelle eines und speichere es auf dem lokalen Rechner. Wenn Sie noch nicht mit der iOS-Entwicklung vertraut sind, erstellen Sie ein neues Projekt und wählen Sie die Vorlage für iOS-Apps aus.
  3. Erstelle in deinem Projektverzeichnis eine Datei mit dem Namen Cartfile. Diese Datei definiert die Abhängigkeiten Ihres Projekts.
  4. Bearbeiten Sie Cartfile und fügen Sie Ihre Abhängigkeiten mit den zugehörigen Versionen hinzu:
     binary "https://dl.google.com/geosdk/GooglePlaces.json" == 6.2.1
    Führen Sie regelmäßig carthage outdated aus, um festzustellen, wann eine neuere Version vorhanden ist, damit Sie immer auf dem neuesten Stand sind.
  5. Speichere die Cartfile.
  6. Wechseln Sie in einem Terminalfenster zum Verzeichnis, das Cartfile enthält:
    cd <path-to-project>
  7. Führe den Befehl carthage update aus. Dadurch werden die in der Cartfile angegebenen APIs und ggf. zugehörige Abhängigkeiten installiert.
  8. Gehen Sie im Finder in Ihrem Projektverzeichnis zu den heruntergeladenen Framework-Dateien unter Carthage/Build/iOS.
  9. Ziehen Sie die folgenden Bundles in Ihr Projekt. Wählen Sie dazu bei Bedarf Elemente kopieren aus:
    • GooglePlaces-5.x.x/Frameworks/GooglePlaces.framework
  10. Klicke in deinem Projekt mit der rechten Maustaste auf GooglePlaces.framework und wähle Show In Finder (In Finder zeigen) aus.
  11. Ziehe GooglePlaces.bundle aus dem Ordner Resources in dein Projekt. Prüfe, wenn du dazu aufgefordert wirst, ob Copy items into destination group's folder (Elemente in Ordner der Zielgruppe kopieren) ausgewählt ist. Das sollte nicht der Fall sein.
  12. Wähle im Project Navigator dein Projekt aus und gib dann das Ziel deiner App an.
  13. Öffnen Sie den Tab Build Phases (Build-Phasen) und fügen Sie unter Link Binary with Libraries (Binärdatei mit Bibliotheken verknüpfen) die folgenden Frameworks und Bibliotheken hinzu:
    • CoreGraphics.framework
    • CoreLocation.framework
    • libc++.tbd
    • libz.tbd
    • QuartzCore.framework
    • UIKit.framework
  14. Wähle statt eines bestimmten Ziels dein Projekt aus und öffne den Tab Build Settings (Build-Einstellungen).

  15. Fügen Sie im Abschnitt Other Linker Flags -ObjC hinzu. Wenn diese Einstellungen nicht sichtbar sind, ändern Sie den Filter in der Leiste Build Settings (Build-Einstellungen) von Basic zu All.

So aktualisieren Sie die API für ein vorhandenes Projekt:

  1. Öffnen Sie ein Terminal und rufen Sie das Projektverzeichnis auf, das die Cartfile enthält.
  2. Führe den Befehl carthage update aus. Dadurch werden alle in Cartfile angegebenen APIs auf die neueste Version aktualisiert.

Manuell installieren

In diesem Leitfaden wird gezeigt, wie Sie das GooglePlaces-Framework Ihrem Projekt manuell hinzufügen und Ihre Build-Einstellungen in Xcode konfigurieren.

  1. Laden Sie die SDK-Quelldateien herunter: GooglePlaces-7.2.0
  2. Entpacke die Quelldateien.
  3. Starte Xcode und öffne ein vorhandenes oder erstelle ein neues Projekt. Wenn Sie noch nicht mit der iOS-Entwicklung vertraut sind, erstellen Sie ein neues Projekt und wählen Sie die iOS-App-Vorlage aus.
  4. Entfernen Sie Maps-Bündel aus vorherigen Releases aus Ihrem Projekt.
  5. Ziehen Sie die folgenden Bundles in Ihr Projekt. Wählen Sie dazu bei Bedarf Elemente kopieren aus:
    • GooglePlaces-5.x.x/Frameworks/GooglePlaces.framework
  6. Klicke in deinem Projekt mit der rechten Maustaste auf GooglePlaces.framework und wähle Show In Finder (In Finder zeigen) aus.
  7. Ziehe GooglePlaces.bundle aus dem Ordner Resources in dein Projekt. Prüfe, wenn du dazu aufgefordert wirst, ob Copy items into destination group's folder (Elemente in Ordner der Zielgruppe kopieren) ausgewählt ist. Das sollte nicht der Fall sein.
  8. Wähle im Project Navigator dein Projekt aus und gib dann das Ziel deiner App an.
  9. Öffnen Sie den Tab Build Phases (Build-Phasen) und fügen Sie unter Link Binary with Libraries (Binärdatei mit Bibliotheken verknüpfen) die folgenden Frameworks und Bibliotheken hinzu:
    • CoreGraphics.framework
    • CoreLocation.framework
    • libc++.tbd
    • libz.tbd
    • QuartzCore.framework
    • UIKit.framework
  10. Wähle statt eines bestimmten Ziels dein Projekt aus und öffne den Tab Build Settings (Build-Einstellungen).

  11. Fügen Sie im Abschnitt Other Linker Flags -ObjC hinzu. Wenn diese Einstellungen nicht sichtbar sind, ändern Sie den Filter in der Leiste Build Settings (Build-Einstellungen) von Basic zu All.

XCFramework installieren

Ein XCFramework ist ein Binärpaket, das Sie auf mehreren Plattformen (einschließlich Computern, die den M1-Chipsatz verwenden) zur Installation des Places SDK for iOS verwenden können. In dieser Anleitung wird erläutert, wie Sie Ihrem Projekt das XCFramework mit dem Places SDK for iOS hinzufügen und die Build-Einstellungen in Xcode konfigurieren.

Mit Karthago

Das Places SDK for iOS kann mit Carthage verwendet werden, einem einfachen, dezentralisierten Abhängigkeitsmanager für Swift- und Objective-C-Cocoa-Projekte.

  1. Installieren Sie Karthago. Es gibt mehrere Methoden. Eine genaue Anleitung findest du in der Readme-Datei für Karthago.
  2. Wenn Sie noch kein Xcode-Projekt haben, erstellen Sie es jetzt und speichern Sie es auf Ihrem lokalen Computer. Wenn Sie noch nicht mit der iOS-Entwicklung vertraut sind, erstellen Sie ein neues Projekt und wählen Sie die Vorlage für iOS-Apps aus.
  3. Erstelle in deinem Projektverzeichnis eine Datei mit dem Namen Cartfile. Diese Datei definiert die Abhängigkeiten Ihres Projekts.
  4. Bearbeiten Sie Cartfile und fügen Sie Ihre Abhängigkeiten mit ihren Versionen hinzu:

    binary "https://dl.google.com/geosdk/GooglePlaces.json" == 6.2.1-beta
  5. Speichere die Cartfile.
  6. Wechseln Sie in einem Terminalfenster zum Verzeichnis mit dem Cartfile:

    cd <path-to-project>
  7. Führe den Befehl carthage update aus. Dadurch werden die in Cartfile angegebenen APIs zusammen mit allen Abhängigkeiten installiert.
  8. Rufen Sie im Finder im Projektverzeichnis die heruntergeladenen Framework-Dateien unter Carthage/Build auf.
  9. Ziehen Sie das folgende XCFramework unter Frameworks, Bibliotheken und eingebettete Inhalte in Ihr Projekt. Wähle Nicht einbetten aus:
    • GooglePlaces-x.x.x/GooglePlaces.xcframework
  10. Klicken Sie mit der rechten Maustaste auf GooglePlaces.xcframework in Ihrem Projekt und wählen Sie Show In Finder (In Finder anzeigen) aus.
  11. Ziehen Sie GooglePlaces.bundle aus dem Ordner ios-arm64/GooglePlaces.framework/Resources in das Verzeichnis der obersten Ebene Ihres Xcode-Projekts. Wenn Sie dazu aufgefordert werden, achten Sie darauf, dass Elemente in Zielordner kopieren nicht ausgewählt ist.
  12. Wählen Sie Ihr Projekt im Project Navigator und dann das Ziel Ihrer Anwendung aus.
  13. Öffnen Sie den Tab Build Phases (Build-Phasen) und führen Sie unter Link Binary with Libraries (Binärdatei mit Bibliotheken verknüpfen) die folgenden Frameworks und Bibliotheken aus:
    • CoreGraphics.framework
    • CoreLocation.framework
    • libc++.tbd
    • libz.tbd
    • QuartzCore.framework
    • UIKit.framework
  14. Wählen Sie Ihr Projekt anstelle eines bestimmten Ziels aus und öffnen Sie den Tab Build Settings (Build-Einstellungen).

  15. Fügen Sie im Abschnitt Other Linker Flags -ObjC hinzu. Wenn diese Einstellungen nicht sichtbar sind, ändern Sie den Filter in der Leiste Build Settings (Build-Einstellungen) von Basic zu All.

Manuell

In dieser Anleitung wird beschrieben, wie Sie das Maps SDK for iOS manuell Ihrem Projekt hinzufügen und die Build-Einstellungen in Xcode konfigurieren.

  1. Laden Sie die SDK-Quelldateien herunter: GooglePlaces-7.2.0-beta-xcframework.
  2. Entpacke die Quelldateien.
  3. Starten Sie Xcode und öffnen Sie entweder ein vorhandenes Projekt oder erstellen Sie ein neues Projekt. Wenn Sie neu bei iOS sind, erstellen Sie ein neues Projekt und wählen Sie die iOS-App-Vorlage aus.
  4. Ziehen Sie das folgende XCFramework unter Frameworks, Bibliotheken und eingebettete Inhalte in Ihr Projekt. Wähle Nicht einbetten aus:
    • GooglePlaces-x.x.x/GooglePlaces.xcframework
  5. Klicken Sie mit der rechten Maustaste auf GooglePlaces.xcframework in Ihrem Projekt und wählen Sie Show In Finder (In Finder anzeigen) aus.
  6. Ziehen Sie GooglePlaces.bundle aus dem Ordner ios-arm64/GooglePlaces.framework/Resources in das Verzeichnis der obersten Ebene Ihres Xcode-Projekts. Wenn Sie dazu aufgefordert werden, achten Sie darauf, dass Elemente in Zielordner 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) und führen Sie unter Link Binary with Libraries (Binärdatei mit Bibliotheken verknüpfen) die folgenden Frameworks und Bibliotheken aus:
    • CoreGraphics.framework
    • CoreLocation.framework
    • libc++.tbd
    • libz.tbd
    • QuartzCore.framework
    • UIKit.framework
  9. Wählen Sie Ihr Projekt anstelle eines bestimmten Ziels aus und öffnen Sie den Tab Build Settings (Build-Einstellungen).

  10. Fügen Sie im Abschnitt Other Linker Flags -ObjC hinzu. Wenn diese Einstellungen nicht sichtbar sind, ändern Sie den Filter in der Leiste Build Settings (Build-Einstellungen) von Basic zu All.

Schritt 3: API-Schlüssel in die App einfügen

Ersetze YOUR_API_KEY in den folgenden Beispielen durch deinen API-Schlüssel.

Swift

Füge deinen API-Schlüssel folgendermaßen in AppDelegate.swift ein:

  • Fügen Sie die folgende Importanweisung hinzu:
    import GooglePlaces
  • Fügen Sie der Methode application(_:didFinishLaunchingWithOptions:) Folgendes hinzu und ersetzen Sie dabei YOUR_API_KEY durch Ihren API-Schlüssel:
    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 GooglePlaces;
  • Fügen Sie der Methode application:didFinishLaunchingWithOptions: Folgendes hinzu und ersetzen Sie dabei YOUR_API_KEY durch Ihren API-Schlüssel:
    [GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];

Schritt 4: Code schreiben

Die folgenden Codebeispiele zeigen, wie der aktuelle Ort abgerufen wird.

Swift

import GooglePlaces
import UIKit

class GetStartedViewController : UIViewController {

  // Add a pair of UILabels in Interface Builder, and connect the outlets to these variables.
  @IBOutlet private var nameLabel: UILabel!
  @IBOutlet private var addressLabel: UILabel!

  private var placesClient: GMSPlacesClient!

  override func viewDidLoad() {
    super.viewDidLoad()
    placesClient = GMSPlacesClient.shared()
  }

  // Add a UIButton in Interface Builder, and connect the action to this function.
  @IBAction func getCurrentPlace(_ sender: UIButton) {
    let placeFields: GMSPlaceField = [.name, .formattedAddress]
    placesClient.findPlaceLikelihoodsFromCurrentLocation(withPlaceFields: placeFields) { [weak self] (placeLikelihoods, error) in
      guard let strongSelf = self else {
        return
      }

      guard error == nil else {
        print("Current place error: \(error?.localizedDescription ?? "")")
        return
      }

      guard let place = placeLikelihoods?.first?.place else {
        strongSelf.nameLabel.text = "No current place"
        strongSelf.addressLabel.text = ""
        return
      }

      strongSelf.nameLabel.text = place.name
      strongSelf.addressLabel.text = place.formattedAddress
    }
  }
}
      

Objective-C

#import "GetStartedViewController.h"
@import GooglePlaces;

@interface GetStartedViewController ()
// Add a pair of UILabels in Interface Builder and connect the outlets to these variables
@property (weak, nonatomic) IBOutlet UILabel *nameLabel;
@property (weak, nonatomic) IBOutlet UILabel *addressLabel;
@end

@implementation GetStartedViewController {
  GMSPlacesClient *_placesClient;
}

- (void)viewDidLoad {
  [super viewDidLoad];
  _placesClient = [GMSPlacesClient sharedClient];
}

// Add a pair of UILabels in Interface Builder and connect the outlets to these variables.
- (IBAction)getCurrentPlace:(UIButton *)sender {
  GMSPlaceField placeFields = (GMSPlaceFieldName | GMSPlaceFieldFormattedAddress);

  __weak typeof(self) weakSelf = self;
  [_placesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:placeFields callback:^(NSArray<GMSPlaceLikelihood *> * _Nullable likelihoods, NSError * _Nullable error) {
    __typeof__(self) strongSelf = weakSelf;
    if (strongSelf == nil) {
      return;
    }

    if (error != nil) {
      NSLog(@"An error occurred %@", [error localizedDescription]);
      return;
    }

    GMSPlace *place = likelihoods.firstObject.place;
    if (place == nil) {
      strongSelf.nameLabel.text = @"No current place";
      strongSelf.addressLabel.text = @"";
      return;
    }

    strongSelf.nameLabel.text = place.name;
    strongSelf.addressLabel.text = place.formattedAddress;
  }];
}

@end
      

Nächste Schritte

Nach der Konfiguration Ihres Projekts können Sie sich die Beispiel-Apps ansehen. CocoaPods v1.6.1 muss installiert sein.