Dopo aver abilitato la fatturazione e creato una chiave API, puoi configurare il progetto Xcode che utilizzi per sviluppare la tua app.
Le note di rilascio sono disponibili per ogni release.
Passaggio 1: installa il software richiesto
Per creare un progetto utilizzando l'SDK Places per iOS, hai bisogno di:
- Xcode 14.0 o versioni successive
- Cocoapods
- Se non hai ancora un progetto Xcode, creane uno ora e salvalo sulla tua macchina locale. Se non hai mai utilizzato lo sviluppo 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 il
Podfile
e aggiungi le dipendenze insieme alle relative versions. 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, '14.0' target 'YOUR_APPLICATION_TARGET_NAME_HERE' do pod 'GooglePlaces', '8.3.0' end
Assicurati di eseguire regolarmentepod outdated
per rilevare quando è disponibile una versione più recente e assicurarti di avere sempre quella più recente. - Salva il
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 alle eventuali dipendenze esistenti.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.- Apri un terminale e vai alla directory del progetto contenente
Podfile
. - Esegui il comando
pod update
. Tutte le API specificate inPodfile
verranno aggiornate all'ultima versione. - Scarica i seguenti file binari e risorse dell'SDK:
- Decomprimi i file compressi per accedere a XCFramework e alle risorse.
- Avvia Xcode e apri un progetto esistente o creane uno nuovo. Se non hai mai utilizzato lo sviluppo iOS, crea un nuovo progetto e seleziona il modello di app per iOS.
- Rimuovi dal progetto eventuali bundle Maps delle release precedenti.
- Trascina i seguenti XCFramework nel tuo progetto in
Framework, librerie e contenuti incorporati. Assicurati
di selezionare Non incorporare:
GooglePlaces.xcframework
- Trascina
GooglePlaces.bundle
da GooglePlacesResources che hai scaricato nella directory di primo livello del tuo progetto Xcode. Quando richiesto, assicurati che sia selezionata l'opzione Copia elementi nella cartella del gruppo di destinazione. - Seleziona il progetto nel riquadro di navigazione dei progetti e scegli il target dell'applicazione.
- Apri la scheda Fasi di build, in Collega binario alle librerie, quindi aggiungi i seguenti framework e librerie:
CoreGraphics.framework
CoreLocation.framework
libc++.tbd
libz.tbd
QuartzCore.framework
UIKit.framework
Scegli il progetto anziché una destinazione specifica e apri la scheda Impostazioni build.
- Nella sezione Altri flag linker, aggiungi
-ObjC
. Se queste impostazioni non sono visibili, cambia il filtro nella barra Impostazioni build da Base a Tutti. - Aggiungi la seguente istruzione di importazione:
import GooglePlaces
- Aggiungi quanto segue al tuo metodo
application(_:didFinishLaunchingWithOptions:)
, sostituendo YOUR_API_KEY con la tua chiave API:GMSPlacesClient.provideAPIKey("YOUR_API_KEY")
- Aggiungi la seguente istruzione di importazione:
@import GooglePlaces;
- Aggiungi quanto segue al tuo metodo
application:didFinishLaunchingWithOptions:
, sostituendo YOUR_API_KEY con la tua chiave API:[GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];
Passaggio 2: crea il progetto Xcode e installa l'SDK Places per iOS
Per installare l'API in un nuovo progetto, segui questi passaggi:Utilizzare Cocoapods
L'SDK Places per iOS è disponibile come pod CocoaPod, GooglePlaces, che contiene tutte le funzionalità Places.
CocoaPods è un gestore delle dipendenze open source per i progetti Cocoa Swift e Objective-C. Se non hai ancora lo strumento CocoaPods, installalo su macOS eseguendo questo comando 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:
Per aggiornare l'API per un progetto esistente:
Installa manualmente
Questa guida mostra come aggiungere manualmente al tuo progetto l'XCFramework contenente l'SDK Places per iOS e come configurare le impostazioni di build in Xcode. Un XCFramework è un pacchetto binario che puoi utilizzare su più piattaforme, incluse le macchine che utilizzano silicon Apple.
Passaggio 3: aggiungi la chiave API all'app
Negli esempi seguenti, sostituisci YOUR_API_KEY
con la tua chiave API.
Swift
Aggiungi la tua chiave API a AppDelegate.swift
come segue:
Objective-C
Aggiungi la tua chiave API a AppDelegate.m
come segue:
Passaggio 4: inizia a scrivere codice
I seguenti esempi di codice mostrano come ottenere il luogo attuale.
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. Sarà necessario installare Cocoapods v1.6.1.