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 ottenere una chiave API senza costi aggiuntivi.
Per ogni release sono disponibili note di rilascio.
Passaggio 1: scarica l'ultima versione 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:Utilizzare i cocoapie
L'SDK Places per iOS è disponibile come pod CocoaPod, GooglePlaces, che contiene la funzionalità per tutti i luoghi.
CocoaPods è un gestore delle dipendenze open source per i progetti Cocoa di Swift e Objective-C. Se non disponi già dello strumento CocoaPods, installalo su macOS eseguendo il comando seguente dal terminale. Per maggiori dettagli, consulta la Guida introduttiva a 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 ora e salvalo sulla tua macchina locale. Se hai appena iniziato a sviluppare prodotti per 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 i
Podfile
e aggiungi le dipendenze insieme alle rispettive versioni. Ecco un esempio che specifica il nome di destinazione dell'applicazione e il nome del podGooglePlaces
:source 'https://github.com/CocoaPods/Specs.git' platform :ios, '14.0' target 'YOUR_APPLICATION_TARGET_NAME_HERE' do pod 'GooglePlaces', '8.0.0' end
Assicurati di eseguire regolarmentepod outdated
per rilevare quando è disponibile una versione più recente per assicurarti di utilizzare sempre la versione più recente. - Salva
Podfile
. Apri un terminale e vai alla directory contenente il
Podfile
:cd <path-to-project>
Esegui il comando
pod install
. Verranno installate le API specificate inPodfile
, insieme a tutte le eventuali dipendenze.pod install
Chiudi Xcode, quindi apri (fai doppio clic) il file
.xcworkspace
del tuo progetto per avviare Xcode. Da questo momento in poi, devi 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 nellaPodfile
verranno aggiornate alla versione più recente.
Usa carta
L'SDK Places per iOS può essere utilizzato con Carthage, un semplice gestore di dipendenze decentralizzato per i progetti Swift e Objective-C Cocoa.
- Installa Cartagine. Esistono diversi metodi, quindi consulta il file README di Cartagine per i passaggi esatti.
- Se non hai ancora un progetto Xcode, creane uno ora e salvalo sulla tua macchina locale. Se hai appena iniziato a sviluppare prodotti per 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 i
Cartfile
e aggiungi le dipendenze insieme alle rispettive 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 disporre sempre della versione più recente. - 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 tutte le eventuali dipendenze. - Nel Finder, nella directory del progetto, vai ai file del framework scaricati in
Carthage/Build/iOS
. - Trascina i bundle seguenti nel progetto (quando richiesto, seleziona
Copia 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 nel Finder. - Trascina
GooglePlaces.bundle
dalla cartellaResources
nel progetto. Quando richiesto, assicurati che non sia selezionato Copia elementi nella cartella del gruppo di destinazione. - Seleziona il progetto dalla barra di navigazione del progetto e scegli il target dell'applicazione.
- Apri la scheda Fasi di compilazione e, in Collega il 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, cambia il filtro nella barra Impostazioni build da Di 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 nellaCartfile
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 build in Xcode.
- Scarica i file di origine dell'SDK: GooglePlaces-8.0.0
- Decomprimi i file di origine.
- Avvia Xcode e apri un progetto esistente oppure creane uno nuovo. Se non hai mai utilizzato lo sviluppo iOS, crea un nuovo progetto e seleziona il modello di app iOS.
- Rimuovi eventuali pacchetti Maps dalle release precedenti del progetto.
- Trascina i bundle seguenti nel progetto (quando richiesto, seleziona
Copia 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 nel Finder. - Trascina
GooglePlaces.bundle
dalla cartellaResources
nel progetto. Quando richiesto, assicurati che non sia selezionato Copia elementi nella cartella del gruppo di destinazione. - Seleziona il progetto dalla barra di navigazione del progetto e scegli il target dell'applicazione.
- Apri la scheda Fasi di compilazione e, in Collega il 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, cambia il filtro nella barra Impostazioni build da Di 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 tuo progetto l'XCFramework contenente l'SDK Places per iOS e configurare le impostazioni di build in Xcode.
Con carta
L'SDK Places per iOS è disponibile per l'utilizzo con Carthage, un semplice gestore di dipendenze decentralizzato per i progetti Swift e Objective-C Cocoa.
- Installa Cartagine. Esistono diversi metodi, quindi consulta il file README di Cartagine per i passaggi esatti.
- Se non hai ancora un progetto Xcode, creane uno ora e salvalo sulla tua macchina locale. Se hai appena iniziato a sviluppare prodotti per 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 i
Cartfile
e aggiungi le dipendenze insieme alle rispettive 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 tutte le eventuali dipendenze. - Nel Finder, nella directory del progetto, vai ai file del framework scaricati in
Carthage/Build
. - Trascina il seguente XCFramework nel progetto in
Framework, librerie e contenuti incorporati. 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 dalla barra di navigazione del progetto e scegli il target dell'applicazione.
- Apri la scheda Fasi di compilazione e, in Collega Binary with
Libraries, 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, cambia il filtro nella barra Impostazioni build da Di base a Tutte.
Manualmente
Questa guida mostra come aggiungere manualmente l'SDK Maps per iOS al tuo progetto e configurare le impostazioni di build in Xcode.
- Scarica i file di origine dell'SDK: GooglePlaces-8.0.0.
- Decomprimi i file di origine. Vai alla cartella Frameworks per accedere all'elemento XCFramework.
- Avvia Xcode e apri un progetto esistente oppure creane uno nuovo. Se non hai mai utilizzato iOS, crea un nuovo progetto e seleziona il modello di app per iOS.
- Trascina il seguente XCFramework nel progetto in
Framework, librerie e contenuti incorporati. 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 dalla barra di navigazione del progetto e scegli il target dell'applicazione.
- Apri la scheda Fasi di compilazione e, in Collega Binary with
Libraries, 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, cambia il filtro nella barra Impostazioni build da Di base a Tutte.
Passaggio 3: aggiungi la chiave API alla tua app
Negli esempi riportati di seguito, sostituisci YOUR_API_KEY
con la tua chiave API.
Swift
Aggiungi la chiave API a 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 a 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 mostrano come ottenere la posizione 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. Dovrai installare Cocoapods v1.6.1.