Nachdem Sie die Abrechnung aktiviert und einen API-Schlüssel erstellt haben, können Sie Xcode-Projekt, mit dem Sie Ihre App entwickeln.
Versionshinweise für die einzelnen Veröffentlichung.
Schritt 1: Erforderliche Software installieren
Zum Erstellen eines Projekts mit dem Places SDK for iOS benötigen Sie Folgendes:
- Xcode Version 15.0 oder höher
Schritt 2: Xcode-Projekt erstellen und Places SDK for iOS installieren
Swift-Paketmanager
Das Places SDK for iOS kann über installiert werden. Swift Package Manager Um das SDK hinzuzufügen, müssen Sie alle vorhandenen Abhängigkeiten des Places SDK for iOS entfernt.
So fügen Sie das SDK einem neuen oder vorhandenen Projekt hinzu:
-
Öffne deinen Xcode
project
oderworkspace
und klicke auf Datei > Paketabhängigkeiten hinzufügen. - Geben Sie https://github.com/googlemaps/ios-places-sdk als URL ein und drücken Sie die Eingabetaste. um das Paket zu laden, und klicke auf „Paket hinzufügen“.
-
Wenn Sie eine bestimmte
version
installieren möchten, legen Sie das Feld Abhängigkeitsregel auf eine der folgenden Optionen fest: zu den versionsbasierten Optionen. Für neue Projekte empfehlen wir, die neueste Version und mit der Spalte „Exakte Version“ Option. Klicke anschließend auf „Paket hinzufügen“. -
Prüfe im Fenster Paketprodukte auswählen, ob
GooglePlaces
hinzugefügt wird Ihr festgelegtes Ziel fürmain
. Klicke anschließend auf „Paket hinzufügen“. -
Um die Installation zu überprüfen, navigiere zum Bereich
General
deines Ziels. Die installierten Pakete sollten nun unter Frameworks, Bibliotheken und eingebettete Inhalte zu sehen sein. Sie können auch die „Paketabhängigkeiten“ von Projektnavigator um das Paket und seine Version zu überprüfen.
So aktualisieren Sie den package
für ein vorhandenes Projekt:
Wenn Sie ein Upgrade von einer früheren Version als 9.0.0 durchführen,müssen Sie die folgenden Abhängigkeiten:
GoogleMapsBase
,GoogleMapsCore
undGoogleMapsM4B
nach dem Upgrade. Entfernen Sie nicht die Abhängigkeit fürGoogleMaps
Weitere Informationen finden Sie in der Versionshinweise zu Version 9.0.0Gehen Sie in den Konfigurationseinstellungen des Xcode-Projekts zu Frameworks, Libraries, und eingebettete Inhalte. Verwenden Sie das Minuszeichen(-), um das folgende Framework zu entfernen:
GoogleMapsBase
(nur für Upgrades von Versionen vor 9.0.0)GoogleMapsCore
(nur für Upgrades von Versionen vor 9.0.0)GoogleMapsM4B
(nur für Upgrades von Versionen vor 9.0.0)
- Gehen Sie in Xcode zu „File > Pakete > Auf neueste Paketversionen aktualisieren“.
- Um die Installation zu überprüfen, gehen Sie in der Projektnavigation zum Abschnitt Paketabhängigkeiten. um das Paket und seine Version zu überprüfen.
So entfernen Sie vorhandene Abhängigkeiten des Places SDK for iOS, die mithilfe von
CocoaPods
, gehen Sie so vor:
- 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
-
Entfernen Sie
Podfile
,Podfile.resolved
und den Xcodeworkspace
, wenn du sie ausschließlich für CocoaPods verwendest.
- </ph>
-
Gehen Sie in den Konfigurationseinstellungen des Xcode-Projekts zu Frameworks, Libraries,
und eingebettete Inhalte. Verwenden Sie das Minuszeichen(-), um das folgende Framework zu entfernen:
<ph type="x-smartling-placeholder">
- </ph>
GooglePlaces.xcframework
-
Entfernen Sie im Verzeichnis der obersten Ebene Ihres Xcode-Projekts das
GooglePlaces
Set.
CocoaPods
Das Places SDK for iOS ist als CocoaPod verfügbar. GooglePlaces, 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 Tool CocoaPods noch nicht haben, installieren Sie es auf unter macOS durch Ausführen des folgenden Befehls im Terminal. Weitere Informationen finden Sie unter im Startleitfaden für CocoaPods
sudo gem install cocoapods
Podfile
für das Places SDK for iOS erstellen und verwenden
um das SDK und seine Abhängigkeiten zu installieren:
- Falls du noch kein Xcode-Projekt hast, erstelle eines und speichere es auf dem lokalen Rechner. Wenn du noch keine Erfahrung mit der iOS-Entwicklung hast, erstelle 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 die
Podfile
und fügen Sie Ihre Abhängigkeiten zusammen mit den zugehörigen Versionen hinzu. Hier ist eine in dem das Anwendungsziel und der Name des dem PodGooglePlaces
:source 'https://github.com/CocoaPods/Specs.git' platform :ios, '15.0' target 'YOUR_APPLICATION_TARGET_NAME_HERE' do pod 'GooglePlaces', '8.3.0' end
Führen Siepod outdated
regelmäßig aus, um zu erkennen, wann eine neuere um sicherzustellen, dass Sie immer die aktuelle Version verwenden. - 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 mit der Datei
Podfile
auf. - Führe den Befehl
pod update
aus. Dadurch werden alle APIs aktualisiert inPodfile
auf die neueste Version aktualisiert.
Manuelle Installation
In diesem Leitfaden erfahren Sie, wie Sie das XCFramework, das das Places SDK for iOS enthält, manuell zu Ihrem Projekt erstellen und Ihre Build-Einstellungen in Xcode konfigurieren. Ein XCFramework ist ein Binärpaket, das Sie auf mehreren Plattformen, einschließlich Maschinen, verwenden können. mit Apple Silicon.
- Laden Sie die folgenden SDK-Binärdateien und -Ressourcendateien herunter: <ph type="x-smartling-placeholder">
- Extrahieren Sie die Dateien, um auf XCFramework und Ressourcen zuzugreifen.
- Starte Xcode und öffne ein vorhandenes oder erstelle ein neues Projekt. Wenn du noch keine Erfahrung mit der iOS-Entwicklung hast, erstelle 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.
-
Öffnen Sie den Tab Allgemein. Ziehen Sie das folgende XCFramework in Ihr Projekt
unter Frameworks, Bibliotheken und eingebettete Inhalte. Achten Sie darauf,
um Nicht einbetten auszuwählen:
<ph type="x-smartling-placeholder">
- </ph>
GooglePlaces.xcframework
-
Kopieren Sie den
GooglePlaces.bundle
aus GooglePlacesResources. die Sie in das Verzeichnis der obersten Ebene Ihres Xcode-Projekts heruntergeladen haben. Achten Sie darauf, Kopieren Sie die Elemente in den Ordner der Zielgruppe, wenn Sie dazu aufgefordert werden. - Wählen Sie Ihr Projekt aus dem Project Navigator und dann Ihr Anwendungsziel.
-
Öffnen Sie den Tab Build Phases (Build-Phasen). Innerhalb von Binärprogramm verknüpfen mit
Bibliotheken, fügen Sie die folgenden Frameworks und Bibliotheken hinzu:
<ph type="x-smartling-placeholder">
- </ph>
CoreGraphics.framework
CoreLocation.framework
libc++.tbd
libz.tbd
QuartzCore.framework
UIKit.framework
-
Wählen Sie Ihr Projekt statt eines bestimmten Ziels aus und öffnen Sie das Build Settings (Build-Einstellungen). Klicken Sie im Menü Linking - General -> Andere Verknüpfung Flags hinzufügen, fügen Sie
-ObjC
zur Fehlerbehebung hinzu. und „Veröffentlichung“. Wenn diese Einstellungen nicht sichtbar sind, ändern Sie den Filter in der Leiste Build-Einstellungen von Einfach zu Alle ändern.
GooglePlaces.bundle
aus den heruntergeladenen GooglePlacesResources ziehen
GooglePlacesSwift
Sie können das GooglePlacesSwift SDK (Vorabversion) mit Swift Package Manager, CocoaPods oder manuell installieren. Die Schritte für die Installation in allen Prozessen entsprechen den Schritten für die Places SDK for iOS, mit folgenden Unterschieden:
- Xcode 15.3 ist erforderlich.
- Wenn Sie Swift Package Manager verwenden, müssen Sie
GooglePlaces
mitGooglePlacesSwift
. Dazu gehören auch Importanweisungen.- Ersetzen Sie Instanzen von https://github.com/googlemaps/ios-places-sdk durch https://github.com/googlemaps/ios-places-swift-sdk.
- Aktualisieren Sie die Versionsnummer auf 0.1.0.
- Wenn Sie die Installation manuell durchführen, laden Sie die folgenden SDK-Binärdateien und Ressourcendateien herunter: <ph type="x-smartling-placeholder">
Wenn Sie CocoaPods verwenden, sieht der bearbeitete Podfile
beispielsweise so aus:
source 'https://github.com/CocoaPods/Specs.git' platform :ios, '15.3' target 'YOUR_APPLICATION_TARGET_NAME_HERE' do pod 'GooglePlacesSwift', '0.1.0' end
Schritt 3: Apple Privacy Manifest-Datei prüfen
Apple verlangt, dass bei Apps im App Store Details zum App-Datenschutz angegeben werden. Aktuelle Informationen und weitere Informationen finden Sie auf der Seite zu Datenschutzdetails im Apple App Store.
Die Apple Privacy Manifest-Datei ist im Ressourcenpaket für das SDK enthalten. Wenn Sie prüfen möchten, ob die Privacy Manifest-Datei enthalten ist, und ihren Inhalt prüfen möchten, erstellen Sie ein Archiv Ihrer App und generieren Sie aus dem Archiv einen Datenschutzbericht.
Schritt 4: API-Schlüssel zur App hinzufügen
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 GooglePlaces
- Folgendes Ihrem
application(_:didFinishLaunchingWithOptions:)
hinzufügen 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;
- Folgendes Ihrem
application:didFinishLaunchingWithOptions:
hinzufügen und ersetzen Sie dabei YOUR_API_KEY durch Ihren API-Schlüssel:[GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];
GooglePlacesSwift
Füge deinen API-Schlüssel folgendermaßen in AppDelegate.swift
ein:
- Fügen Sie die folgende Importanweisung hinzu:
import GooglePlacesSwift
- Folgendes Ihrem
application(_:didFinishLaunchingWithOptions:)
hinzufügen und ersetzen Sie dabei YOUR_API_KEY durch Ihren API-Schlüssel:PlacesClient.shared.provideAPIKey("YOUR_API_KEY")
Schritt 5: Erste Schritte im Codeschreiben
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
GooglePlacesSwift
struct ContentView: View { @State var place: Place? var body: some View { Button("Get Place") { // A hotel in Saigon with an attribution. let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs" let fetchPlaceRequest = FetchPlaceRequest( placeID: placeID, placeProperties: [.displayName, .formattedAddress] ) Task { switch await placesClient.fetchPlace(with: fetchPlaceRequest) { case .success(let place): self.place = place case .failure(let placesError): // Handle error } Text(swiftPlace?.displayName ?? "No place yet") .padding() Text(swiftPlace?.formattedAddress ?? "No place yet") .padding() } }
Nächste Schritte
Nachdem Ihr Projekt konfiguriert wurde, können Sie Beispiel-Apps.