Une fois la facturation activée et la clé API créée, vous pouvez configurer le projet Xcode qui vous permettra de développer votre application.
Des notes de version sont disponibles pour chaque version.
Étape 1 : Installez le logiciel requis
Pour créer un projet à l'aide du SDK Places pour iOS, vous avez besoin:
- 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 Swift Package Manager. 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 fichier Xcode
project
ouworkspace
, puis accédez à File > Add Package Dependencies (Fichier > Ajouter des dépendances de packages). - Saisissez https://github.com/googlemaps/ios-places-sdk comme URL, appuyez sur Entrée pour récupérer le package, puis cliquez sur "Add Package" (Ajouter un package).
-
Pour installer un
version
spécifique, définissez le champ Règle de dépendance sur l'une des options basées sur la version. Pour les nouveaux projets, nous vous recommandons de spécifier la dernière version et d'utiliser l'option "Version exacte". Une fois l'opération terminée, cliquez sur "Ajouter un package". -
Dans la fenêtre Choose Package Products (Sélectionner des produits de package), vérifiez que
GooglePlaces
sera ajouté à la ciblemain
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. Dans Cadres, bibliothèques et contenu intégré, vous devriez voir les packages installés. Vous pouvez également consulter la section "Package Dependencies" (Dépendances de packages) de "Project Navigator" (Navigateur de projets) pour vérifier le package et sa version.
Pour mettre à jour le package
d'un projet existant, procédez comme suit:
- Dans Xcode, accédez à Fichier > Packages > Mettre à jour vers les dernières versions du package.
- Pour vérifier votre installation, accédez à la section Package Dependencies (Dépendances de packages) de Project Navigator afin de 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 Xcodeworkspace
si vous ne les utilisez que pour CocoaPods.
-
Dans les paramètres de configuration de votre projet Xcode, recherchez Frameworks, bibliothèques et contenu intégré. Utilisez le signe moins(-) pour supprimer le framework suivant :
GooglePlaces.xcframework
-
Dans le répertoire racine de votre projet Xcode, supprimez le bundle
GooglePlaces
.
CocoaPods
Le SDK Places pour iOS est disponible sous la forme d'un pod CocoaPod, 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éez un Podfile
pour le SDK Places pour iOS et utilisez-le 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 le 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 ainsi que leurs versions. Voici un exemple qui spécifie le nom de la cible de votre application et le nom du 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
Veillez à exécuter régulièrementpod outdated
pour détecter les nouvelles versions et vous assurer que vous bénéficiez toujours de la dernière version. - 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 le fichier
Podfile
. - Exécutez la commande
pod update
. Toutes les API spécifiées dansPodfile
seront mises à jour vers la dernière version.
Installation manuelle
Ce guide explique comment ajouter manuellement à votre projet le XCFramework contenant le SDK Places pour iOS et configurer vos paramètres de compilation dans Xcode. Un XCFramework est un package binaire que vous pouvez utiliser sur plusieurs plates-formes, y compris sur des machines utilisant une silicone Apple.
- Téléchargez les fichiers binaires et de ressources suivants du SDK :
- Extrayez les fichiers pour accéder à XCFramework et à ses 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 le 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 Frameworks, bibliothèques et contenu intégré. Veillez à sélectionner Ne pas intégrer :
GooglePlaces.xcframework
Faites glisser -
Copiez le fichier
GooglePlaces.bundle
des GooglePlacesResources que vous avez téléchargé dans le répertoire de premier niveau de votre projet Xcode. Veillez à sélectionner Copier les éléments dans le dossier du groupe de destination lorsque vous y êtes invité. - Sélectionnez votre projet dans Project Navigator, puis choisissez la cible de votre application.
-
Ouvrez l'onglet Build Phases (Phases de compilation). Dans Link Binary with Library (Associer le binaire avec des bibliothèques), ajoutez les frameworks et bibliothèques suivants :
CoreGraphics.framework
CoreLocation.framework
libc++.tbd
libz.tbd
QuartzCore.framework
UIKit.framework
-
Choisissez votre projet plutôt qu'une cible spécifique, puis ouvrez l'onglet Build Settings (Paramètres de compilation). Dans la section Linking - General -> Other Linker Flags (Association - Général -> Autres indicateurs Linker), ajoutez
-ObjC
à "Debug" (Débogage) et "Release" (Publier). Si ces paramètres ne sont pas visibles, remplacez le filtre Basic (De base) par All (Tous) dans la barre Build Settings (Paramètres de compilation).
GooglePlaces.bundle
depuis les GooglePlacesResources que vous avez téléchargées
Ajouter un fichier manifeste de confidentialité Apple
- Téléchargez le bundle du fichier manifeste de confidentialité pour le SDK Places pour iOS: GooglePlacesPrivacy.
- Extrayez le fichier pour accéder à
GooglePlacesPrivacy.bundle
. - Copiez
GooglePlacesPrivacy.bundle
dans le répertoire de premier niveau de votre projet Xcode.
Étape 3: 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 l'instruction d'importation suivante :
import GooglePlaces
- Ajoutez les éléments suivants à votre méthode
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 l'instruction d'importation suivante :
@import GooglePlaces;
- Ajoutez les éléments suivants à votre méthode
application:didFinishLaunchingWithOptions:
, en remplaçant YOUR_API_KEY par votre clé API :[GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];
Étape 4: Commencez à écrire 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
Étapes suivantes
Une fois votre projet configuré, vous pouvez explorer les applications exemples. Vous devez installer Cocoapods v1.6.1.