Folgen Sie der Anleitung in diesem Leitfaden, um das Places SDK for iOS herunterzuladen, Ihrer App die Bibliothek und ihre 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:
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 mit allen Places-Funktionen verfügbar.
CocoaPods ist ein Open-Source-Abhängigkeitsmanager für Cocoa-Projekte in Swift und Objective-C. Wenn Sie das Tool „CocoaPods“ noch nicht haben, installieren Sie es unter macOS, indem Sie den folgenden Befehl im Terminal ausführen. Weitere Informationen finden Sie im CocoaPods-Startleitfaden.
sudo gem install cocoapods
Erstellen Sie eine Podfile
für das Places SDK for iOS und installieren Sie damit das SDK und die zugehörigen Abhängigkeiten:
- Falls du noch kein Xcode-Projekt hast, erstelle eines und speichere es auf dem lokalen Rechner. Wenn Sie mit der iOS-Entwicklung noch nicht vertraut sind, erstellen Sie ein neues Projekt und wählen Sie die Vorlage für iOS-Apps aus.
- Erstelle in deinem Projektverzeichnis eine Datei mit dem Namen
Podfile
. In dieser Datei sind die Abhängigkeiten des Projekts definiert. - Bearbeiten Sie
Podfile
und fügen Sie Ihre Abhängigkeiten zusammen mit ihren Versionen hinzu. Im folgenden Beispiel werden der Name des Anwendungsziels und der Name des PodsGooglePlaces
angegeben:source 'https://github.com/CocoaPods/Specs.git' platform :ios, '13.0' target 'YOUR_APPLICATION_TARGET_NAME_HERE' do pod 'GooglePlaces', '7.4.0' end
Führen Siepod outdated
regelmäßig aus, um festzustellen, wann eine neuere Version vorhanden ist, damit Sie immer auf dem neuesten Stand sind. - Speichere die
Podfile
. Öffne ein Terminalfenster und suche das Verzeichnis mit der
Podfile
: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 die
Podfile
enthält. - Führe den Befehl
pod update
aus. Dadurch werden alle inPodfile
angegebenen APIs auf die neueste Version aktualisiert.
Karthago
Das Places SDK for iOS kann mit Carthage verwendet werden, einem einfachen, dezentralen Abhängigkeitsmanager für Swift- und Objective-C-Cocoa-Projekte.
- Carthage installieren. Es gibt mehrere Methoden. Eine genaue Anleitung finden Sie in der Readme-Datei von Karthago.
- Falls du noch kein Xcode-Projekt hast, erstelle eines und speichere es auf dem lokalen Rechner. Wenn Sie mit der iOS-Entwicklung noch nicht vertraut sind, erstellen Sie ein neues Projekt und wählen Sie die Vorlage für iOS-Apps aus.
- Erstelle in deinem Projektverzeichnis eine Datei mit dem Namen
Cartfile
. Diese Datei definiert die Abhängigkeiten Ihres Projekts. - Bearbeiten Sie
Cartfile
und fügen Sie Ihre Abhängigkeiten zusammen mit ihren Versionen hinzu:
binary "https://dl.google.com/geosdk/GooglePlaces.json" == 6.2.1
Führen Siecarthage outdated
regelmäßig aus, um festzustellen, ob eine neuere Version vorhanden ist, damit Sie immer auf dem neuesten Stand sind. - Speichere die
Cartfile
. - Wechseln Sie in einem Terminalfenster zum Verzeichnis mit dem
Cartfile
:
cd <path-to-project>
- Führe den Befehl
carthage update
aus. Dadurch werden die in derCartfile
angegebenen APIs und ggf. zugehörige Abhängigkeiten installiert. - Rufen Sie im Finder im Projektverzeichnis die heruntergeladenen Framework-Dateien unter
Carthage/Build/iOS
auf. - Ziehen Sie die folgenden Bundles in Ihr Projekt. Wenn Sie dazu aufgefordert werden, wählen Sie Elemente bei Bedarf kopieren aus:
GooglePlaces-x.x.x/Frameworks/GooglePlaces.xcframework
- Klicke in deinem Projekt mit der rechten Maustaste auf
GooglePlaces.xcframework
und wähle Show In Finder (In Finder zeigen) aus. - Ziehe
GooglePlaces.bundle
aus dem OrdnerResources
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. - Wähle im Project Navigator dein Projekt aus und gib dann das Ziel deiner App an.
- Ö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
Wähle statt eines bestimmten Ziels dein Projekt aus und öffne den Tab Build Settings (Build-Einstellungen).
- Fügen Sie im Abschnitt Andere Linker-Flags
-ObjC
hinzu. Wenn diese Einstellungen nicht sichtbar sind, ändern Sie den Filter in der Leiste Build Settings von Basic zu All.
So aktualisieren Sie die API für ein vorhandenes Projekt:
- Öffnen Sie ein Terminal und rufen Sie das Projektverzeichnis auf, das die
Cartfile
enthält. - Führe den Befehl
carthage update
aus. Dadurch werden alle inCartfile
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.
- Laden Sie die SDK-Quelldateien herunter: GooglePlaces-7.4.0
- Entpacke die Quelldateien.
- Starte Xcode und öffne ein vorhandenes oder erstelle ein neues Projekt. Wenn Sie mit der iOS-Entwicklung noch nicht vertraut sind, erstellen Sie ein neues Projekt und wählen Sie die Vorlage für iOS-Apps aus.
- Entfernen Sie Maps-Bündel aus vorherigen Releases aus Ihrem Projekt.
- Ziehen Sie die folgenden Bundles in Ihr Projekt. Wenn Sie dazu aufgefordert werden, wählen Sie Elemente bei Bedarf kopieren aus:
GooglePlaces-x.x.x/Frameworks/GooglePlaces.xcframework
- Klicke in deinem Projekt mit der rechten Maustaste auf
GooglePlaces.xcframework
und wähle Show In Finder (In Finder zeigen) aus. - Ziehe
GooglePlaces.bundle
aus dem OrdnerResources
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. - Wähle im Project Navigator dein Projekt aus und gib dann das Ziel deiner App an.
- Ö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
Wähle statt eines bestimmten Ziels dein Projekt aus und öffne den Tab Build Settings (Build-Einstellungen).
- Fügen Sie im Abschnitt Andere Linker-Flags
-ObjC
hinzu. Wenn diese Einstellungen nicht sichtbar sind, ändern Sie den Filter in der Leiste Build Settings von Basic zu All.
XCFramework installieren
Ein XCFramework ist ein binäres Paket, das Sie auf mehreren Plattformen verwenden können, einschließlich Computern, auf denen der M1-Chipsatz installiert ist, um das Places SDK for iOS zu installieren. In diesem Leitfaden erfahren Sie, wie Sie das XCFramework, das das Places SDK for iOS enthält, Ihrem Projekt hinzufügen und die Build-Einstellungen in Xcode konfigurieren.
Mit Karthago
Das Places SDK for iOS kann mit Carthage verwendet werden, einem einfachen, dezentralen Abhängigkeitsmanager für Swift- und Objective-C-Cocoa-Projekte.
- Carthage installieren. Es gibt mehrere Methoden. Eine genaue Anleitung finden Sie in der Readme-Datei von Karthago.
- 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 und wählen Sie die Vorlage für iOS-Apps aus.
- Erstelle in deinem Projektverzeichnis eine Datei mit dem Namen
Cartfile
. Diese Datei definiert die Abhängigkeiten Ihres Projekts. Bearbeiten Sie
Cartfile
und fügen Sie die Abhängigkeiten zusammen mit ihren Versionen hinzu:binary "https://dl.google.com/geosdk/GooglePlaces.json" == 6.2.1-beta
- Speichere die
Cartfile
. Wechseln Sie in einem Terminalfenster zum Verzeichnis mit dem
Cartfile
:cd <path-to-project>
- Führe den Befehl
carthage update
aus. Dadurch werden die inCartfile
angegebenen APIs sowie ggf. zugehörige Abhängigkeiten installiert. - Rufen Sie im Finder im Projektverzeichnis die heruntergeladenen Framework-Dateien unter
Carthage/Build
auf. - Ziehen Sie unter Frameworks, Libraries, Embedded Content das folgende XCFramework in Ihr Projekt. Wähle Nicht einbetten aus:
GooglePlaces-x.x.x/GooglePlaces.xcframework
- Klicken Sie mit der rechten Maustaste auf
GooglePlaces.xcframework
in Ihrem Projekt und wählen Sie In Finder anzeigen aus. - Ziehen Sie
GooglePlaces.bundle
aus dem Ordnerios-arm64/GooglePlaces.framework/Resources
in das Verzeichnis der obersten Ebene Ihres Xcode-Projekts. Wenn Sie dazu aufgefordert werden, achten Sie darauf, dass Copy items into destination group's folder (Elemente in Ordner der Zielgruppe 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) unter Link Binary with Libraries (Binärdatei mit Bibliotheken verknüpfen) und fügen Sie die folgenden Frameworks und Bibliotheken hinzu:
CoreGraphics.framework
CoreLocation.framework
libc++.tbd
libz.tbd
QuartzCore.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 Andere Linker-Flags
-ObjC
hinzu. Wenn diese Einstellungen nicht sichtbar sind, ändern Sie den Filter in der Leiste Build Settings von Basic zu All.
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.
- Laden Sie die SDK-Quelldateien herunter: GooglePlaces-7.4.0.
- Entpacke die Quelldateien. Rufen Sie den Ordner Frameworks auf, um auf das XCFramework zuzugreifen.
- Starten Sie Xcode und öffnen Sie entweder ein vorhandenes Projekt oder erstellen Sie 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.
- Ziehen Sie unter Frameworks, Libraries, Embedded Content das folgende XCFramework in Ihr Projekt. Wähle Nicht einbetten aus:
GooglePlaces-x.x.x/GooglePlaces.xcframework
- Klicken Sie mit der rechten Maustaste auf
GooglePlaces.xcframework
in Ihrem Projekt und wählen Sie In Finder anzeigen aus. - Ziehen Sie
GooglePlaces.bundle
aus dem Ordnerios-arm64/GooglePlaces.framework/Resources
in das Verzeichnis der obersten Ebene Ihres Xcode-Projekts. Wenn Sie dazu aufgefordert werden, achten Sie darauf, dass Copy items into destination group's folder (Elemente in Ordner der Zielgruppe 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) unter Link Binary with Libraries (Binärdatei mit Bibliotheken verknüpfen) und fügen Sie die folgenden Frameworks und Bibliotheken hinzu:
CoreGraphics.framework
CoreLocation.framework
libc++.tbd
libz.tbd
QuartzCore.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 Andere Linker-Flags
-ObjC
hinzu. Wenn diese Einstellungen nicht sichtbar sind, ändern Sie den Filter in der Leiste Build Settings von Basic zu All.
Schritt 3: API-Schlüssel der App hinzufü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 Sie den aktuellen Ort abrufen.
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
Nachdem Ihr Projekt konfiguriert wurde, können Sie sich die Beispiel-Apps ansehen. CocoaPods v1.6.1 muss installiert sein.