Segui i passaggi descritti in questa guida per scaricare l'SDK Places per iOS, per aggiungere la libreria e le sue dipendenze all'app e per ricevere una chiave API senza costi aggiuntivi.
Per ogni release sono disponibili note di rilascio.
Passaggio 1: installa la versione più recente di Xcode
Per creare un progetto utilizzando l'SDK Places per iOS, devi disporre di:
Passaggio 2: installa l'SDK
Per installare l'API in un nuovo progetto, segui questi passaggi:Usa Cocoapod
L'SDK Places per iOS è disponibile come pod CocoaPod, GooglePlaces, che contiene tutte le funzionalità relative ai luoghi.
CocoaPods è un gestore delle dipendenze open source per i progetti Cocoa di Swift e Objective-C. Se non hai ancora lo strumento CocoaPods, installalo su macOS eseguendo il comando seguente dal terminale. Per maggiori dettagli, consulta la guida introduttiva di CocoaPods.
sudo gem install cocoapods
Crea un Podfile
per l'SDK Places per iOS e utilizzalo per installare l'SDK e le sue dipendenze:
- Se non hai ancora un progetto Xcode, creane uno e salvalo sulla tua macchina locale. Se hai appena iniziato a sviluppare iOS, crea un nuovo progetto e seleziona il modello di app per iOS.
- Crea un file denominato
Podfile
nella directory del progetto. Questo file definisce le dipendenze del progetto. - Modifica
Podfile
e aggiungi le dipendenze insieme alle relative versioni. Ecco un esempio che specifica il nome della destinazione dell'applicazione e il nome del podGooglePlaces
:source 'https://github.com/CocoaPods/Specs.git' platform :ios, '13.0' target 'YOUR_APPLICATION_TARGET_NAME_HERE' do pod 'GooglePlaces', '7.4.0' end
Assicurati di eseguire regolarmentepod outdated
per rilevare quando è disponibile una versione più recente per assicurarti di avere sempre l'ultima versione. - Salva
Podfile
. Apri un terminale e vai alla directory contenente
Podfile
:cd <path-to-project>
Esegui il comando
pod install
. Verranno installate le API specificate inPodfile
, insieme a eventuali dipendenze che potrebbero avere.pod install
Chiudi Xcode, quindi apri (fai doppio clic) sul file
.xcworkspace
del progetto per avviare Xcode. Da quel momento in poi, dovrai utilizzare il file.xcworkspace
per aprire il progetto.
Per aggiornare l'API per un progetto esistente, segui questi passaggi:
- Apri un terminale e vai alla directory del progetto contenente
Podfile
. - Esegui il comando
pod update
. Tutte le API specificate inPodfile
verranno aggiornate alla versione più recente.
Usa Cartagine
L'SDK Places per iOS può essere utilizzato con Carthage, un gestore di dipendenze semplice e decentralizzato per i progetti Swift e Objective-C Cocoa.
- Installa Cartagine. Esistono diversi metodi, quindi consulta il file README di Cartagine per conoscere la procedura esatta.
- Se non hai ancora un progetto Xcode, creane uno e salvalo sulla tua macchina locale. Se hai appena iniziato a sviluppare iOS, crea un nuovo progetto e seleziona il modello di app per iOS.
- Crea un file denominato
Cartfile
nella directory del progetto. Questo file definisce le dipendenze del progetto. - Modifica
Cartfile
e aggiungi le dipendenze insieme alle relative versioni:
binary "https://dl.google.com/geosdk/GooglePlaces.json" == 6.2.1
Assicurati di eseguire regolarmentecarthage outdated
per rilevare quando è disponibile una versione più recente per assicurarti di avere sempre l'ultima versione. - Salva
Cartfile
. - In una finestra del terminale, vai alla directory contenente
Cartfile
:
cd <path-to-project>
- Esegui il comando
carthage update
. Verranno installate le API specificate inCartfile
, insieme a eventuali dipendenze che potrebbero avere. - Nel Finder, nella directory del progetto, vai ai file del framework scaricati in
Carthage/Build/iOS
. - Trascina i seguenti bundle nel tuo progetto (quando richiesto, seleziona
Copia gli elementi se necessario):
GooglePlaces-x.x.x/Frameworks/GooglePlaces.xcframework
- Fai clic con il tasto destro del mouse su
GooglePlaces.xcframework
nel progetto e seleziona Mostra in Finder. - Trascina
GooglePlaces.bundle
dalla cartellaResources
nel progetto. Quando richiesto, assicurati che l'opzione Copia elementi nella cartella del gruppo di destinazione non sia selezionata. - Seleziona il progetto dal navigatore dei progetti e scegli il target dell'applicazione.
- Apri la scheda Fasi della build e, in Collega programma binario con
librerie, aggiungi i seguenti framework e librerie:
CoreGraphics.framework
CoreLocation.framework
libc++.tbd
libz.tbd
QuartzCore.framework
UIKit.framework
Scegli il progetto, anziché un target specifico, e apri la scheda Impostazioni build.
- Nella sezione Altri flag del linker,
aggiungi
-ObjC
. Se queste impostazioni non sono visibili, modifica il filtro nella barra Impostazioni build da Base a Tutte.
Per aggiornare l'API per un progetto esistente, segui questi passaggi:
- Apri un terminale e vai alla directory del progetto contenente
Cartfile
. - Esegui il comando
carthage update
. Tutte le API specificate inCartfile
verranno aggiornate alla versione più recente.
Installazione manuale
Questa guida mostra come aggiungere manualmente il framework Google Places al tuo progetto e configurare le impostazioni di compilazione in Xcode.
- Scarica i file sorgente SDK: GooglePlaces-7.4.0
- Decomprimi i file di origine.
- Avvia Xcode e apri un progetto esistente oppure crea un nuovo progetto. Se hai appena iniziato a sviluppare iOS, crea un nuovo progetto e seleziona il modello di app per iOS.
- Rimuovi dal bundle qualsiasi bundle Maps delle release precedenti.
- Trascina i seguenti bundle nel tuo progetto (quando richiesto, seleziona
Copia gli elementi se necessario):
GooglePlaces-x.x.x/Frameworks/GooglePlaces.xcframework
- Fai clic con il tasto destro del mouse su
GooglePlaces.xcframework
nel progetto e seleziona Mostra in Finder. - Trascina
GooglePlaces.bundle
dalla cartellaResources
nel progetto. Quando richiesto, assicurati che l'opzione Copia elementi nella cartella del gruppo di destinazione non sia selezionata. - Seleziona il progetto dal navigatore dei progetti e scegli il target dell'applicazione.
- Apri la scheda Fasi della build e, in Collega programma binario con
librerie, aggiungi i seguenti framework e librerie:
CoreGraphics.framework
CoreLocation.framework
libc++.tbd
libz.tbd
QuartzCore.framework
UIKit.framework
Scegli il progetto, anziché un target specifico, e apri la scheda Impostazioni build.
- Nella sezione Altri flag del linker,
aggiungi
-ObjC
. Se queste impostazioni non sono visibili, modifica il filtro nella barra Impostazioni build da Base a Tutte.
Installa XCFramework
Un XCFramework è un pacchetto binario che puoi utilizzare su più piattaforme, incluse le macchine che utilizzano il chipset M1, per installare l'SDK Places per iOS. Questa guida mostra come aggiungere al progetto il progetto XCFramework contenente l'SDK Places per iOS e configurare le impostazioni della build in Xcode.
Con cartagine
L'SDK Places per iOS può essere utilizzato con Carthage, un gestore di dipendenze semplice e decentralizzato per i progetti Swift e Objective-C Cocoa.
- Installa Cartagine. Esistono diversi metodi, quindi consulta il file README di Cartagine per conoscere la procedura esatta.
- Se non hai ancora un progetto Xcode, creane uno e salvalo sulla tua macchina locale. Se hai appena iniziato a sviluppare iOS, crea un nuovo progetto e seleziona il modello di app per iOS.
- Crea un file denominato
Cartfile
nella directory del progetto. Questo file definisce le dipendenze del progetto. Modifica
Cartfile
e aggiungi le dipendenze insieme alle relative versioni:binary "https://dl.google.com/geosdk/GooglePlaces.json" == 6.2.1-beta
- Salva
Cartfile
. In una finestra del terminale, vai alla directory contenente
Cartfile
:cd <path-to-project>
- Esegui il comando
carthage update
. Verranno installate le API specificate inCartfile
, insieme a eventuali dipendenze che potrebbero avere. - Nel Finder, nella directory del progetto, vai ai file del framework scaricati in
Carthage/Build
. - Trascina il seguente XCFramework nel tuo progetto in Framework, Libraries and Embedded Content. Assicurati di selezionare Non incorporare:
GooglePlaces-x.x.x/GooglePlaces.xcframework
- Fai clic con il tasto destro del mouse su
GooglePlaces.xcframework
nel progetto e seleziona Mostra nel Finder. - Trascina
GooglePlaces.bundle
dalla cartellaios-arm64/GooglePlaces.framework/Resources
nella directory di primo livello del tuo progetto Xcode. Quando richiesto, assicurati che l'opzione Copia elementi nella cartella del gruppo di destinazione non sia selezionata. - Seleziona il progetto dal navigatore dei progetti e scegli il target dell'applicazione.
- Apri la scheda Fasi della build e, in Collega programma binario con
librerie, aggiungi i seguenti framework e librerie:
CoreGraphics.framework
CoreLocation.framework
libc++.tbd
libz.tbd
QuartzCore.framework
UIKit.framework
Scegli il progetto, anziché un target specifico, e apri la scheda Impostazioni build.
- Nella sezione Altri flag del linker,
aggiungi
-ObjC
. Se queste impostazioni non sono visibili, modifica il filtro nella barra Impostazioni build da Base a Tutte.
Manualmente
Questa guida mostra come aggiungere manualmente l'SDK Maps per iOS al tuo progetto e configurare le impostazioni di compilazione in Xcode.
- Scarica i file sorgente SDK: GooglePlaces-7.4.0.
- Decomprimi i file di origine. Vai alla cartella Frameworks per accedere all'XCFramework.
- Avvia Xcode e apri un progetto esistente oppure crea un nuovo progetto. Se non hai mai utilizzato iOS, crea un nuovo progetto e seleziona il modello di app per iOS.
- Trascina il seguente XCFramework nel tuo progetto in Framework, Libraries and Embedded Content. Assicurati di selezionare Non incorporare:
GooglePlaces-x.x.x/GooglePlaces.xcframework
- Fai clic con il tasto destro del mouse su
GooglePlaces.xcframework
nel progetto e seleziona Mostra nel Finder. - Trascina
GooglePlaces.bundle
dalla cartellaios-arm64/GooglePlaces.framework/Resources
nella directory di primo livello del tuo progetto Xcode. Quando richiesto, assicurati che l'opzione Copia elementi nella cartella del gruppo di destinazione non sia selezionata. - Seleziona il progetto dal navigatore dei progetti e scegli il target dell'applicazione.
- Apri la scheda Fasi della build e, in Collega programma binario con
librerie, aggiungi i seguenti framework e librerie:
CoreGraphics.framework
CoreLocation.framework
libc++.tbd
libz.tbd
QuartzCore.framework
UIKit.framework
Scegli il progetto, anziché un target specifico, e apri la scheda Impostazioni build.
- Nella sezione Altri flag del linker,
aggiungi
-ObjC
. Se queste impostazioni non sono visibili, modifica il filtro nella barra Impostazioni build da Base a Tutte.
Passaggio 3: aggiungi la chiave API alla tua app
Negli esempi riportati di seguito, sostituisci YOUR_API_KEY
con la chiave API.
Swift
Aggiungi la chiave API al tuo AppDelegate.swift
come segue:
- Aggiungi la seguente istruzione di importazione:
import GooglePlaces
- Aggiungi quanto segue al metodo
application(_:didFinishLaunchingWithOptions:)
, sostituendo YOUR_API_KEY con la chiave API:GMSPlacesClient.provideAPIKey("YOUR_API_KEY")
Objective-C
Aggiungi la chiave API al tuo AppDelegate.m
come segue:
- Aggiungi la seguente istruzione di importazione:
@import GooglePlaces;
- Aggiungi quanto segue al metodo
application:didFinishLaunchingWithOptions:
, sostituendo YOUR_API_KEY con la chiave API:[GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];
Passaggio 4: inizia a scrivere codice
I seguenti esempi di codice dimostrano come recuperare il luogo corrente.
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
Passaggi successivi
Dopo aver configurato il progetto, puoi esplorare le app di esempio. È necessario installare Cocoapods 1.6.1.