Configurer un projet Xcode

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Suivez les étapes de ce guide pour télécharger le SDK Places pour iOS, ajouter la bibliothèque et ses dépendances à votre application, et obtenir une clé API sans frais.

Des notes de version sont disponibles pour chaque version.

Étape 1 : Obtenir la dernière version de Xcode

Pour créer un projet à l'aide du SDK Places pour iOS, vous avez besoin des éléments suivants:

  1. Xcode version 13.0 ou ultérieure
  2. CocoaPods ou Carthage.

Étape 2: Installez le SDK

Pour installer l'API dans un nouveau projet :

Utiliser CocoaPods

Le SDK Places pour iOS est disponible en tant que 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 fichier Podfile pour le SDK Places pour iOS et utilisez-le pour installer le SDK et ses dépendances:

  1. 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.
  2. Créez un fichier nommé Podfile dans le répertoire de votre projet. Ce fichier définit les dépendances de votre projet.
  3. Modifiez Podfile et ajoutez vos dépendances avec leurs versions. Voici un exemple qui spécifie le nom de la cible de votre application et le nom du pod GooglePlaces :
    source 'https://github.com/CocoaPods/Specs.git'
    
    platform :ios, '13.0'
    
    target 'YOUR_APPLICATION_TARGET_NAME_HERE' do
      pod 'GooglePlaces', '7.2.0'
    end
    Veillez à exécuter régulièrement pod outdated pour détecter les nouvelles versions afin de toujours bénéficier de la dernière version.
  4. Enregistrez le Podfile.
  5. Ouvrez un terminal et accédez au répertoire contenant le Podfile :

    cd <path-to-project>
  6. Exécutez la commande pod install. Cela installera les API spécifiées dans le Podfile, ainsi que toutes les éventuelles dépendances.

    pod install
  7. 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 d'un projet existant, procédez comme suit:

  1. Ouvrez un terminal et accédez au répertoire du projet contenant Podfile.
  2. Exécutez la commande pod update. Toutes les API spécifiées dans le fichier Podfile seront mises à jour vers la dernière version.

Utiliser Carthage

Le SDK Places pour iOS est disponible avec Carthage, un gestionnaire de dépendances simple et décentralisé pour les projets Cocoa Swift et Objective-C.

  1. Installez Carthage. Plusieurs méthodes existent. Pour connaître la procédure exacte, consultez le fichier README de Carthage.
  2. 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.
  3. Créez un fichier nommé Cartfile dans le répertoire de votre projet. Ce fichier définit les dépendances de votre projet.
  4. Modifiez Cartfile et ajoutez vos dépendances avec leurs versions :
     binary "https://dl.google.com/geosdk/GooglePlaces.json" == 6.2.1
    Assurez-vous d'exécuter régulièrement carthage outdated pour détecter les nouvelles versions afin de toujours bénéficier de la dernière version.
  5. Enregistrez le Cartfile.
  6. Dans une fenêtre de terminal, accédez au répertoire contenant Cartfile:
    cd <path-to-project>
  7. Exécutez la commande carthage update. Cela installera les API spécifiées dans le Cartfile, ainsi que toutes les éventuelles dépendances.
  8. Dans le Finder, accédez au répertoire de votre projet et accédez aux fichiers de framework téléchargés sous Carthage/Build/iOS.
  9. Faites glisser les groupes suivants dans votre projet (lorsque vous y êtes invité, sélectionnez Copier des éléments si nécessaire) :
    • GooglePlaces-5.x.x/Frameworks/GooglePlaces.framework
  10. Effectuez un clic droit sur GooglePlaces.framework dans votre projet, puis sélectionnez Show In Finder (Afficher dans le Finder).
  11. Faites glisser GooglePlaces.bundle du dossier Resources vers votre projet. Lorsque vous y êtes invité, vérifiez que Copy items into destination group's folder (Copier les éléments dans le dossier du groupe de destination) n'est pas sélectionné.
  12. Sélectionnez votre projet dans Project Navigator, puis choisissez la cible de votre application.
  13. Ouvrez l'onglet Phases de compilation et, dans Associer un binaire à une bibliothèque, ajoutez les frameworks et les bibliothèques suivants :
    • CoreGraphics.framework
    • CoreLocation.framework
    • libc++.tbd
    • libz.tbd
    • QuartzCore.framework
    • UIKit.framework
  14. Choisissez votre projet plutôt qu'une cible spécifique, et ouvrez l'onglet Build Settings (Paramètres de build).

  15. Dans la section Autres indicateurs Linker, ajoutez -ObjC. Si ces paramètres ne sont pas visibles, modifiez le filtre dans la barre Build Settings (Paramètres de compilation) de Basic à All.

Pour mettre à jour l'API d'un projet existant, procédez comme suit:

  1. Ouvrez un terminal et accédez au répertoire du projet contenant Cartfile.
  2. Exécutez la commande carthage update. Toutes les API spécifiées dans le fichier Cartfile seront mises à jour vers la dernière version.

Installer manuellement

Ce guide explique comment ajouter manuellement le framework GooglePlaces à votre projet et configurer vos paramètres de compilation dans Xcode.

  1. Téléchargez les fichiers sources du SDK : GooglePlaces-7.2.0
  2. Décompressez les fichiers sources.
  3. 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.
  4. Supprimez tous les groupes Maps des précédentes versions de votre projet.
  5. Faites glisser les groupes suivants dans votre projet (lorsque vous y êtes invité, sélectionnez Copier des éléments si nécessaire) :
    • GooglePlaces-5.x.x/Frameworks/GooglePlaces.framework
  6. Effectuez un clic droit sur GooglePlaces.framework dans votre projet, puis sélectionnez Show In Finder (Afficher dans le Finder).
  7. Faites glisser GooglePlaces.bundle du dossier Resources vers votre projet. Lorsque vous y êtes invité, vérifiez que Copy items into destination group's folder (Copier les éléments dans le dossier du groupe de destination) n'est pas sélectionné.
  8. Sélectionnez votre projet dans Project Navigator, puis choisissez la cible de votre application.
  9. Ouvrez l'onglet Phases de compilation et, dans Associer un binaire à une bibliothèque, ajoutez les frameworks et les bibliothèques suivants :
    • CoreGraphics.framework
    • CoreLocation.framework
    • libc++.tbd
    • libz.tbd
    • QuartzCore.framework
    • UIKit.framework
  10. Choisissez votre projet plutôt qu'une cible spécifique, et ouvrez l'onglet Build Settings (Paramètres de build).

  11. Dans la section Autres indicateurs Linker, ajoutez -ObjC. Si ces paramètres ne sont pas visibles, modifiez le filtre dans la barre Build Settings (Paramètres de compilation) de Basic à All.

Installer le XCFramework

Un XCFramework est un package binaire que vous pouvez utiliser sur plusieurs plates-formes, y compris des machines utilisant le chipset M1, pour installer le SDK Places pour iOS. Ce guide explique comment ajouter le XCFramework contenant le SDK Places pour iOS à votre projet et configurer vos paramètres de compilation dans Xcode.

Avec carthage

Le SDK Places pour iOS est disponible avec Carthage, un gestionnaire de dépendances simple et décentralisé pour les projets Cocoa Swift et Objective-C.

  1. Installez Carthage. Plusieurs méthodes existent. Pour connaître la procédure exacte, consultez le fichier README de Carthage.
  2. Si vous n'avez pas encore de projet Xcode, créez-en un maintenant et enregistrez-le sur votre ordinateur local. Si vous débutez dans le développement iOS, créez un projet et sélectionnez le modèle d'application iOS.
  3. Créez un fichier nommé Cartfile dans le répertoire de votre projet. Ce fichier définit les dépendances de votre projet.
  4. Modifiez Cartfile et ajoutez vos dépendances avec leurs versions:

    binary "https://dl.google.com/geosdk/GooglePlaces.json" == 6.2.1-beta
  5. Enregistrez le Cartfile.
  6. Dans une fenêtre de terminal, accédez au répertoire contenant Cartfile:

    cd <path-to-project>
  7. Exécutez la commande carthage update. Les API spécifiées dans Cartfile seront installées, ainsi que toutes les dépendances éventuelles.
  8. Dans le Finder, accédez au répertoire de votre projet et accédez aux fichiers du framework téléchargés sous Carthage/Build.
  9. Faites glisser les éléments XCFramework suivants dans votre projet sous Frameworks, bibliothèques et contenus intégrés. Veillez à sélectionner Ne pas intégrer :
    • GooglePlaces-x.x.x/GooglePlaces.xcframework
  10. Effectuez un clic droit sur GooglePlaces.xcframework dans votre projet, puis sélectionnez Afficher dans le Finder.
  11. Faites glisser GooglePlaces.bundle du dossier ios-arm64/GooglePlaces.framework/Resources vers le répertoire de premier niveau de votre projet Xcode. Lorsque vous y êtes invité, assurez-vous que l'option Copier des éléments dans le dossier de groupe de destination n'est pas sélectionnée.
  12. Sélectionnez votre projet dans le navigateur de projet et choisissez la cible de votre application.
  13. Ouvrez l'onglet Phases de compilation et dans Associer le binaire avec des bibliothèques, puis ajoutez les frameworks et bibliothèques suivants :
    • CoreGraphics.framework
    • CoreLocation.framework
    • libc++.tbd
    • libz.tbd
    • QuartzCore.framework
    • UIKit.framework
  14. Choisissez votre projet plutôt qu'une cible spécifique, puis ouvrez l'onglet Paramètres de compilation.

  15. Dans la section Autres indicateurs Linker, ajoutez -ObjC. Si ces paramètres ne sont pas visibles, modifiez le filtre dans la barre Build Settings (Paramètres de compilation) de Basic à All.

Manuellement

Ce guide explique comment ajouter manuellement le SDK Maps pour iOS à votre projet et configurer vos paramètres de compilation dans Xcode.

  1. Téléchargez les fichiers sources du SDK : GooglePlaces-7.2.0-beta-xcframework.
  2. Décompressez les fichiers sources.
  3. Lancez Xcode, puis ouvrez un projet existant ou créez-en un. Si vous débutez avec iOS, créez un projet et sélectionnez le modèle d'application iOS.
  4. Faites glisser les éléments XCFramework suivants dans votre projet sous Frameworks, bibliothèques et contenus intégrés. Veillez à sélectionner Ne pas intégrer :
    • GooglePlaces-x.x.x/GooglePlaces.xcframework
  5. Effectuez un clic droit sur GooglePlaces.xcframework dans votre projet, puis sélectionnez Afficher dans le Finder.
  6. Faites glisser GooglePlaces.bundle du dossier ios-arm64/GooglePlaces.framework/Resources vers le répertoire de premier niveau de votre projet Xcode. Lorsque vous y êtes invité, assurez-vous que l'option Copier des éléments dans le dossier de groupe de destination n'est pas sélectionnée.
  7. Sélectionnez votre projet dans le navigateur de projet et choisissez la cible de votre application.
  8. Ouvrez l'onglet Phases de compilation et dans Associer le binaire avec des bibliothèques, puis ajoutez les frameworks et bibliothèques suivants :
    • CoreGraphics.framework
    • CoreLocation.framework
    • libc++.tbd
    • libz.tbd
    • QuartzCore.framework
    • UIKit.framework
  9. Choisissez votre projet plutôt qu'une cible spécifique, puis ouvrez l'onglet Paramètres de compilation.

  10. Dans la section Autres indicateurs Linker, ajoutez -ObjC. Si ces paramètres ne sont pas visibles, modifiez le filtre dans la barre Build Settings (Paramètres de compilation) de Basic à All.

É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 le code suivant à 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 le code suivant à 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 exemples d'applications. La version 1.6.1 de CocoaPods est nécessaire.