Dopo aver abilitato la fatturazione e creato una chiave API, puoi configurare il progetto Xcode che utilizzi per sviluppare l'app.
Passaggio 1: installa il software richiesto
Per creare un progetto utilizzando l'SDK di Maps per iOS, devi scaricare e installare:
Passaggio 2: crea il progetto Xcode e installa l'SDK di Maps per iOS
Utilizzare CocoaPods
L'SDK di Maps per iOS è disponibile come pod di CocoaPods. 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 Maps per iOS e utilizzalo per installare l'API e le sue dipendenze:
- 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.
- Seleziona il modello iOS > App.
- Nella schermata delle opzioni del progetto:
- Inserisci il nome del progetto.
- Prendi nota del valore del campo Identificatore bundle. Puoi utilizzare questo valore per limitare la chiave API di seguito.
- Imposta il progetto Interface su Storyboard.
- Imposta la Lingua su Swift o Objective-C.
- 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 relative versioni. Ecco un esempio che include la dipendenza di cui hai bisogno per l'SDK Maps per iOS:source 'https://github.com/CocoaPods/Specs.git' platform :ios, '14.0' target 'YOUR_APPLICATION_TARGET_NAME_HERE' do pod 'GoogleMaps', '8.0.0' end
Assicurati di eseguire regolarmentepod outdated
per rilevare quando è disponibile una versione più recente, per assicurarti di disporre sempre della versione più recente. Se necessario, esegui l'upgrade alla versione più recente. - 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 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 Maps 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 non hai mai utilizzato lo sviluppo iOS:
- Crea un nuovo progetto.
- Seleziona il modello iOS > App.
- Nella schermata delle opzioni del progetto:
- Inserisci il nome del progetto.
- Prendi nota del valore del campo Identificatore bundle. Puoi utilizzare questo valore per limitare la chiave API di seguito.
- Imposta il progetto Interface su Storyboard.
- Imposta la Lingua su Swift o Objective-C.
- 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/GoogleMaps.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. Se necessario, esegui l'upgrade alla 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, utilizza la stessa versione indicata sopra).
GoogleMaps-x.x.x/Base/Frameworks/GoogleMapsBase.xcframework
GoogleMaps-x.x.x/Maps/Frameworks/GoogleMaps.xcframework
GoogleMaps-x.x.x/Maps/Frameworks/GoogleMapsCore.xcframework
- (Solo per clienti con piano Premium)
GoogleMaps-x.x.x/M4B/Frameworks/GoogleMapsM4B.xcframework
- Fai clic con il tasto destro del mouse su
GoogleMaps.xcframework
nel progetto e seleziona Mostra nel Finder. - Trascina
GoogleMaps.bundle
dalla cartellaResources
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 per la destinazione dell'applicazione e, in Collega il programma binario alle
librerie, aggiungi i seguenti framework e librerie:
Accelerate.framework
CoreData.framework
CoreGraphics.framework
CoreImage.framework
CoreLocation.framework
CoreTelephony.framework
CoreText.framework
GLKit.framework
ImageIO.framework
libc++.tbd
libz.tbd
Metal.framework
OpenGLES.framework
QuartzCore.framework
SystemConfiguration.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 installare l'SDK Places per iOS, consultate la Guida introduttiva all'SDK Places per iOS.
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 l'SDK Maps per iOS al tuo progetto e configurare le impostazioni di compilazione in Xcode.
- Scarica i file di origine dell'SDK: GoogleMaps-8.0.0.
- Decomprimi i file di origine.
- 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.
- Seleziona il modello iOS > App.
- Nella schermata delle opzioni del progetto:
- Inserisci il nome del progetto.
- Prendi nota del valore del campo Identificatore bundle. Puoi utilizzare questo valore per limitare la chiave API di seguito.
- Imposta il progetto Interface su Storyboard.
- Imposta la Lingua su Swift o Objective-C.
- Trascina i bundle seguenti nel progetto: (quando richiesto, seleziona Copia elementi se necessario, utilizza la stessa versione indicata sopra).
GoogleMaps-x.x.x/Base/Frameworks/GoogleMapsBase.xcframework
GoogleMaps-x.x.x/Maps/Frameworks/GoogleMaps.xcframework
GoogleMaps-x.x.x/Maps/Frameworks/GoogleMapsCore.xcframework
- (Solo per clienti con piano Premium)
GoogleMaps-x.x.x/M4B/Frameworks/GoogleMapsM4B.xcframework
- Fai clic con il tasto destro del mouse su
GoogleMaps.xcframework
nel progetto e seleziona Mostra nel Finder. - Trascina
GoogleMaps.bundle
dalla cartellaResources
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 per la destinazione dell'applicazione e, in Collega il programma binario alle
librerie, aggiungi i seguenti framework e librerie:
Accelerate.framework
CoreData.framework
CoreGraphics.framework
CoreImage.framework
CoreLocation.framework
CoreTelephony.framework
CoreText.framework
GLKit.framework
ImageIO.framework
libc++.tbd
libz.tbd
Metal.framework
OpenGLES.framework
QuartzCore.framework
SystemConfiguration.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 installare l'SDK Places per iOS, consultate la Guida introduttiva all'SDK Places per iOS.
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 di Maps per iOS. Questa guida mostra come aggiungere al progetto il XCFramework contenente l'SDK Maps per iOS e configurare le impostazioni di build in Xcode.
Con carta
L'SDK Maps 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 non hai mai utilizzato lo sviluppo iOS:
- Crea un nuovo progetto.
- Seleziona il modello iOS > App.
- Nella schermata delle opzioni del progetto:
- Inserisci il nome del progetto.
- Prendi nota del valore del campo Identificatore bundle. Puoi utilizzare questo valore per limitare la chiave API di seguito.
- Imposta il progetto Interface su Storyboard.
- Imposta la Lingua su Swift o Objective-C.
- 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/GoogleMaps.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 i seguenti XCFrameworks nel tuo progetto in
Framework, Librerie e Contenuti incorporati. Assicurati
di selezionare Do Not Embed (Non incorporare) per ogni XCFramework:
GoogleMaps-x.x.x/GoogleMapsBase.xcframework
GoogleMaps-x.x.x/GoogleMaps.xcframework
GoogleMaps-x.x.x/GoogleMapsCore.xcframework
- (Solo per clienti con piano Premium)
GoogleMaps-x.x.x/GoogleMapsM4B.xcframework
- Fai clic con il tasto destro del mouse su
GoogleMaps.xcframework
nel progetto e seleziona Mostra nel Finder. - Trascina
GoogleMaps.bundle
dalla cartellaios-arm64_x86_64-simulator/GoogleMaps.framework/Resources
nella directory di primo livello del tuo progetto Xcode. Quando richiesto, assicurati che l'opzione Copia elementi se necessario non sia selezionata. - Seleziona il progetto dalla barra di navigazione del progetto e scegli il target dell'applicazione.
- Apri la scheda Fasi di build per il target della tua applicazione
e, in Collega Binary with Libraries, aggiungi i seguenti
framework e librerie:
Accelerate.framework
CoreData.framework
CoreGraphics.framework
CoreImage.framework
CoreLocation.framework
CoreTelephony.framework
CoreText.framework
GLKit.framework
ImageIO.framework
libc++.tbd
libz.tbd
Metal.framework
OpenGLES.framework
QuartzCore.framework
SystemConfiguration.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 installare l'SDK Places per iOS XCFramework, consultate l'introduzione all'SDK Places per iOS.
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: GoogleMaps-8.0.0.
- Decomprimi i file di origine. Vai alla cartella Frameworks per accedere all'elemento XCFramework.
- 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.
- Seleziona il modello iOS > App.
- Nella schermata delle opzioni del progetto:
- Inserisci il nome del progetto.
- Prendi nota del valore del campo Identificatore bundle. Puoi utilizzare questo valore per limitare la chiave API di seguito.
- Imposta il progetto Interface su Storyboard.
- Imposta la Lingua su Swift o Objective-C.
- Trascina i seguenti XCFrameworks nel tuo progetto in
Framework, Librerie e Contenuti incorporati. Assicurati
di selezionare Do Not Embed (Non incorporare) per ogni XCFramework:
GoogleMaps-x.x.x/GoogleMapsBase.xcframework
GoogleMaps-x.x.x/GoogleMaps.xcframework
GoogleMaps-x.x.x/GoogleMapsCore.xcframework
- (Solo per clienti con piano Premium)
GoogleMaps-x.x.x/GoogleMapsM4B.xcframework
- Fai clic con il tasto destro del mouse su
GoogleMaps.xcframework
nel progetto e seleziona Mostra nel Finder. - Trascina
GoogleMaps.bundle
dalla cartellaios-arm64_x86_64-simulator/GoogleMaps.framework/Resources
nella directory di primo livello del tuo progetto Xcode. Quando richiesto, assicurati che l'opzione Copia elementi se necessario non sia selezionata. - Seleziona il progetto dalla barra di navigazione del progetto e scegli il target dell'applicazione.
- Apri la scheda Fasi di build per il target della tua applicazione
e, in Collega Binary with Libraries, aggiungi i seguenti
framework e librerie:
Accelerate.framework
CoreData.framework
CoreGraphics.framework
CoreImage.framework
CoreLocation.framework
CoreTelephony.framework
CoreText.framework
GLKit.framework
ImageIO.framework
libc++.tbd
libz.tbd
Metal.framework
OpenGLES.framework
QuartzCore.framework
SystemConfiguration.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 installare l'SDK Places per iOS XCFramework, consultate l'introduzione all'SDK Places per iOS.
Passaggio 3: aggiungi la chiave API al progetto
In Ottieni una chiave API, hai generato una chiave API per la tua app. Ora aggiungila al tuo progetto Xcode.
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 GoogleMaps
- Aggiungi quanto segue al metodo
application(_:didFinishLaunchingWithOptions:)
, utilizzando la chiave API:GMSServices.provideAPIKey("YOUR_API_KEY")
- Se utilizzi anche l'API Places, aggiungi di nuovo la chiave come mostrato qui:
GMSPlacesClient.provideAPIKey("YOUR_API_KEY")
Objective-C
Aggiungi la chiave API a AppDelegate.m
come segue:
- Aggiungi la seguente istruzione di importazione:
@import GoogleMaps;
- Aggiungi quanto segue al metodo
application:didFinishLaunchingWithOptions:
, utilizzando la chiave API:[GMSServices provideAPIKey:@"YOUR_API_KEY"];
- Se utilizzi anche l'API Places, aggiungi di nuovo la chiave come mostrato qui:
[GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];
(Facoltativo) Passaggio 4: attiva l'utilizzo del framework di rendering Metallo
L'SDK di Maps per iOS ti consente di attivare l'utilizzo del framework di rendering Metallo di Apple. Per provare il renderer di metallo nella tua app, chiama [GMSServices
setMetalRendererEnabled:YES]
in Objective-C o GMSServices.setMetalRendererEnabled(true)
in Swift prima di creare qualsiasi visualizzazione della mappa.
Se stai installando l'SDK manualmente, devi anche assicurarti di aggiungere Metal.framework
in Xcode.
Passaggio 5: aggiungi una mappa
Il codice riportato di seguito illustra come aggiungere una mappa semplice a un ViewController
esistente:
Aggiungi o aggiorna i metodi nel valore predefinito
ViewController
della tua app per creare e inizializzare un'istanza diGMSMapView
.Swift
/* * Copyright 2020 Google Inc. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this * file except in compliance with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF * ANY KIND, either express or implied. See the License for the specific language governing * permissions and limitations under the License. */ import UIKit import GoogleMaps class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. // Create a GMSCameraPosition that tells the map to display the // coordinate -33.86,151.20 at zoom level 6. let camera = GMSCameraPosition.camera(withLatitude: -33.86, longitude: 151.20, zoom: 6.0) let mapView = GMSMapView.map(withFrame: self.view.frame, camera: camera) self.view.addSubview(mapView) // Creates a marker in the center of the map. let marker = GMSMarker() marker.position = CLLocationCoordinate2D(latitude: -33.86, longitude: 151.20) marker.title = "Sydney" marker.snippet = "Australia" marker.map = mapView } }
Objective-C
/* * Copyright 2020 Google Inc. All rights reserved. * * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this * file except in compliance with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF * ANY KIND, either express or implied. See the License for the specific language governing * permissions and limitations under the License. */ #import "ViewController.h" #import <GoogleMaps/GoogleMaps.h> @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. // Create a GMSCameraPosition that tells the map to display the // coordinate -33.86,151.20 at zoom level 6. GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.86 longitude:151.20 zoom:6]; GMSMapView *mapView = [GMSMapView mapWithFrame:self.view.frame camera:camera]; mapView.myLocationEnabled = YES; [self.view addSubview:mapView]; // Creates a marker in the center of the map. GMSMarker *marker = [[GMSMarker alloc] init]; marker.position = CLLocationCoordinate2DMake(-33.86, 151.20); marker.title = @"Sydney"; marker.snippet = @"Australia"; marker.map = mapView; } @end
Esegui l'applicazione. Dovresti vedere una mappa con un singolo indicatore centrato su Sydney, Australia. Se vedi l'indicatore, ma la mappa non è visibile, verifica di aver fornito la chiave API.
(Facoltativo) Passaggio 6: dichiara gli schemi URL utilizzati dall'API
A partire da iOS 9 e Xcode 7, le app possono dichiarare gli schemi URL che intendono aprire, specificando gli schemi nel file Info.plist
dell'app. L'SDK Maps per iOS apre l'app mobile Google Maps quando l'utente fa clic sul logo Google sulla mappa, pertanto l'app può dichiarare gli schemi URL pertinenti.
Per dichiarare gli schemi URL utilizzati dall'SDK di Maps per iOS, aggiungi le seguenti righe a Info.plist
:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>googlechromes</string>
<string>comgooglemaps</string>
</array>
Il seguente screenshot mostra la configurazione nell'interfaccia utente di Xcode:
Senza la dichiarazione precedente, possono verificarsi i seguenti errori quando l'utente tocca il logo di Google sulla mappa:
-canOpenURL: failed for URL: "comgooglemaps://" - error: "This app is not allowed to query for scheme comgooglemaps"
-canOpenURL: failed for URL: "googlechromes://" - error: "This app is not allowed to query for scheme googlechromes"
Per eliminare questi errori, aggiungi la dichiarazione al tuo Info.plist
come descritto in precedenza.
Passaggi successivi
Ora che hai una chiave API e un progetto Xcode, puoi creare ed eseguire app. L'SDK di Maps per iOS fornisce molti tutorial e app di esempio che possono aiutarti a iniziare. Per ulteriori dettagli, vedi: