Après avoir activé la facturation et créé une clé API, vous êtes prêt à configurer Projet Xcode que vous utilisez pour développer votre application.
Des notes de version sont disponibles pour chaque de sortie.
Étape 1 : Installez le logiciel requis
Pour créer un projet à l'aide du SDK Places pour iOS, vous avez besoin de ce qui suit:
- Xcode version 15.0 ou ultérieure
Étape 2: Créez le projet Xcode et installez le SDK Places pour iOS
Gestionnaire de paquets Swift
Le SDK Places pour iOS peut être installé via Gestionnaire de paquets Swift. Pour ajouter le SDK, assurez-vous d'avoir supprimé toutes les dépendances existantes du SDK Places pour iOS ;
Pour ajouter le SDK à un projet nouveau ou existant, procédez comme suit:
-
Ouvrez votre Xcode
project
ouworkspace
, puis accédez à File > (Fichier >) Ajouter des dépendances de packages - Saisissez https://github.com/googlemaps/ios-places-sdk comme URL, puis appuyez sur Entrée. pour extraire le package et cliquez sur « Ajouter un package ».
-
Pour installer un
version
spécifique, définissez le champ Règle de dépendance sur l'une des les options basées sur les versions. Pour les nouveaux projets, nous vous recommandons de spécifier la dernière version et à l'aide de la colonne "Version exacte", . Une fois l'opération terminée, cliquez sur "Ajouter un package". -
Dans la fenêtre Choose Package Products (Sélectionner les produits du package), vérifiez que
GooglePlaces
sera ajouté à votremain
cible désignée. Une fois l'opération terminée, cliquez sur "Ajouter un package". -
Pour vérifier votre installation, accédez au volet
General
de votre cible. Les packages installés devraient s'afficher dans Frameworks, libraries, and Embedded Content (Cadres, bibliothèques et contenu intégré). Vous pouvez également afficher les "Dépendances des packages" de la section "Navigateur de projets" pour vérifier le package et sa version.
Pour mettre à jour le package
pour un projet existant, procédez comme suit:
Si vous effectuez la mise à niveau à partir d'une version antérieure à la version 9.0.0,vous devez supprimer les dépendances suivantes:
GoogleMapsBase
,GoogleMapsCore
etGoogleMapsM4B
après la mise à niveau. Ne supprimez pas la dépendance pourGoogleMaps
Pour en savoir plus, consultez les Notes de version de la version 9.0.0Dans les paramètres de configuration de votre projet Xcode, recherchez Frameworks, Bibliothèques, et les contenus intégrés. Utilisez le signe moins(-) pour supprimer le framework suivant:
GoogleMapsBase
(uniquement pour les mises à niveau à partir de versions antérieures à la version 9.0.0)GoogleMapsCore
(uniquement pour les mises à niveau à partir de versions antérieures à la version 9.0.0)GoogleMapsM4B
(uniquement pour les mises à niveau à partir de versions antérieures à la version 9.0.0)
- Dans Xcode, accédez à Fichier > Packages > Update To Latest Package Versions" (Mise à jour vers les dernières versions du package).
- Pour vérifier votre installation, accédez à la section Package Dependencies (Dépendances des packages) du Project Navigator (Navigateur de projets). pour vérifier le package et sa version.
Pour supprimer les dépendances existantes du SDK Places pour iOS ajoutées à l'aide de
CocoaPods
, procédez comme suit:
- Fermez votre espace de travail Xcode. Ouvrez le terminal et exécutez la commande suivante:
sudo gem install cocoapods-deintegrate cocoapods-clean pod deintegrate pod cache clean --all
-
Supprimez
Podfile
,Podfile.resolved
et les Xcodeworkspace
si vous ne les utilisez pas pour d'autres produits que CocoaPods.
- </ph>
-
Dans les paramètres de configuration de votre projet Xcode, recherchez Frameworks, Bibliothèques,
et les contenus intégrés. Utilisez le signe moins(-) pour supprimer le framework suivant:
<ph type="x-smartling-placeholder">
- </ph>
GooglePlaces.xcframework
-
Dans le répertoire de premier niveau de votre projet Xcode, supprimez
GooglePlaces
. d'un bundle.
CocoaPods
Le SDK Places pour iOS est disponible en tant que CocoaPod pod, GooglePlaces, qui contient toutes les fonctionnalités Places.
CocoaPods est un gestionnaire de dépendances Open Source pour les projets Cocoa Swift et Objective-C. Si vous ne disposez pas encore de l'outil CocoaPods, installez-le sur macOS en exécutant la commande suivante à partir du terminal. Pour en savoir plus, consultez le guide de démarrage de CocoaPods.
sudo gem install cocoapods
Créer un Podfile
pour le SDK Places pour iOS et utiliser
pour installer le SDK et ses dépendances:
- Si vous n'avez pas encore de projet Xcode, créez-en un et enregistrez-le sur votre machine locale. Si vous débutez dans le développement iOS, créez un projet et sélectionnez Modèle d'application iOS.
- Créez un fichier nommé
Podfile
dans le répertoire de votre projet. Ce fichier définit les dépendances de votre projet. - Modifiez
Podfile
et ajoutez vos dépendances avec leurs versions. Voici une qui spécifie le nom de la cible de votre application et le nom le podGooglePlaces
: Veillez à exécuter régulièrementsource 'https://github.com/CocoaPods/Specs.git' platform :ios, '15.0' target 'YOUR_APPLICATION_TARGET_NAME_HERE' do pod 'GooglePlaces', '8.3.0' end
pod outdated
pour détecter la présence d'une nouvelle afin d'être toujours à jour. - Enregistrez le
Podfile
. Ouvrez un terminal et accédez au répertoire contenant le
Podfile
:cd <path-to-project>
Exécutez la commande
pod install
. Cela installera les API spécifiées dans lePodfile
, ainsi que toutes les éventuelles dépendances.pod install
Fermez Xcode, puis ouvrez (double-cliquez) le fichier
.xcworkspace
de votre projet pour lancer Xcode. À partir de ce moment, vous devez utiliser le fichier.xcworkspace
pour ouvrir le projet.
Pour mettre à jour l'API pour un projet existant, procédez comme suit:
- Ouvrez un terminal et accédez au répertoire du projet contenant
Podfile
. - Exécutez la commande
pod update
. Cela mettra à jour toutes les API spécifié dansPodfile
à la dernière version.
Installation manuelle
Ce guide explique comment ajouter manuellement le XCFramework contenant le SDK Places pour iOS à votre et configurer vos paramètres de compilation dans Xcode. Un XCFramework est un paquet binaire que vous pouvez utiliser sur plusieurs plateformes, y compris des machines à l'aide de la puce Apple Silicon.
- Téléchargez les fichiers binaires du SDK et de ressources suivants: <ph type="x-smartling-placeholder">
- Extrayez les fichiers pour accéder au XCFramework et aux ressources.
- Lancez Xcode et ouvrez un projet existant ou créez-en un. Si vous débutez dans le développement iOS, créez un projet et Sélectionnez iOS App template (Modèle d'application iOS).
- Supprimez tous les groupes Maps des précédentes versions de votre projet.
-
Ouvrez l'onglet Général. Faites glisser le XCFramework suivant dans votre projet
sous Cadres, bibliothèques et contenu intégré. Assurez-vous que
pour sélectionner Do Not Embed (Ne pas intégrer) :
<ph type="x-smartling-placeholder">
- </ph>
GooglePlaces.xcframework
Faites glisser -
Copiez l'élément
GooglePlaces.bundle
à partir de GooglePlacesResources que vous avez téléchargé dans le répertoire de premier niveau de votre projet Xcode. Veillez à sélectionner . Copiez les éléments dans le dossier du groupe de destination lorsque vous y êtes invité. - Sélectionnez votre projet dans le navigateur de projets, puis choisissez votre cible de votre application.
-
Ouvrez l'onglet Build Phases (Phases de compilation). Dans Link Binary with
bibliothèques, ajoutez les frameworks et bibliothèques suivants:
<ph type="x-smartling-placeholder">
- </ph>
CoreGraphics.framework
CoreLocation.framework
libc++.tbd
libz.tbd
QuartzCore.framework
UIKit.framework
-
Choisissez votre projet plutôt qu'une cible spécifique, puis ouvrez le Onglet Build Settings (Paramètres de compilation) Dans la section Association - Général -> Autre lien Indicateurs, ajoutez
-ObjC
à "Debug" (Débogage). et "Publier". Si ces ne sont pas visibles, modifiez le filtre dans la barre Build Settings (Paramètres de compilation). de Basic à All.
GooglePlaces.bundle
depuis les GooglePlacesResources que vous avez téléchargées.
GooglePlacesSwift
Vous pouvez installer le SDK GooglePlacesSwift (Preview) manuellement à l'aide de Swift Package Manager, de CocoaPods. La les étapes d'installation de tous les processus reflètent les étapes décrites pour le SDK Places pour iOS, avec les différences suivantes:
- Xcode 15.3 est requis.
- Si vous utilisez Swift Package Manager, vous devez remplacer les instances de
GooglePlaces
avecGooglePlacesSwift
. Cela inclut les instructions d'importation.- Remplacez les instances de https://github.com/googlemaps/ios-places-sdk par https://github.com/googlemaps/ios-places-swift-sdk.
- Mettez à jour le numéro de version vers 0.1.0.
- Si vous l'installez manuellement, téléchargez les fichiers de ressources et les binaires du SDK suivants: <ph type="x-smartling-placeholder">
Par exemple, si vous utilisez CocoaPods, le Podfile
modifié se présentera comme suit:
source 'https://github.com/CocoaPods/Specs.git' platform :ios, '15.3' target 'YOUR_APPLICATION_TARGET_NAME_HERE' do pod 'GooglePlacesSwift', '0.1.0' end
Étape 3: Inspectez le fichier manifeste de confidentialité Apple
Apple exige des informations sur la confidentialité des applications disponibles sur l'App Store. Pour obtenir des mises à jour et d'autres informations, consultez la page Informations sur la confidentialité sur l'App Store d'Apple.
Le fichier manifeste de confidentialité Apple est inclus dans le bundle de ressources pour le SDK. Pour vérifier que le fichier manifeste de confidentialité a été inclus et pour inspecter son contenu, créez une archive de votre application et générez un rapport sur la confidentialité à partir de cette archive.
Étape 4: Ajoutez la clé API à votre application
Dans les exemples suivants, remplacez YOUR_API_KEY
par votre clé API.
Swift
Ajoutez votre clé API à votre fichier AppDelegate.swift
comme suit :
- Ajoutez la déclaration d'importation suivante :
import GooglePlaces
- Ajoutez les éléments suivants à votre
application(_:didFinishLaunchingWithOptions:)
, en remplaçant YOUR_API_KEY par votre clé API:GMSPlacesClient.provideAPIKey("YOUR_API_KEY")
Objective-C
Ajoutez votre clé API à votre fichier AppDelegate.m
comme suit :
- Ajoutez la déclaration d'importation suivante :
@import GooglePlaces;
- Ajoutez les éléments suivants à votre
application:didFinishLaunchingWithOptions:
, en remplaçant YOUR_API_KEY par votre clé API:[GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];
GooglePlacesSwift
Ajoutez votre clé API à votre fichier AppDelegate.swift
comme suit :
- Ajoutez la déclaration d'importation suivante :
import GooglePlacesSwift
- Ajoutez les éléments suivants à votre
application(_:didFinishLaunchingWithOptions:)
, en remplaçant YOUR_API_KEY par votre clé API:PlacesClient.shared.provideAPIKey("YOUR_API_KEY")
Étape 5 : Commencer à rédiger le code
Les exemples de code suivants montrent comment obtenir le lieu actuel.
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() } }
Étapes suivantes
Une fois votre projet configuré, vous pouvez explorer applications exemples.