Dopo aver abilitato la fatturazione e creato una chiave API, puoi configurare il progetto Xcode che utilizzi per sviluppare l'app.
Le note di rilascio sono disponibili per ogni release.
Passaggio 1: installa il software richiesto
Per creare un progetto utilizzando Maps SDK for iOS, devi scaricare e installare:
Passaggio 2: crea il progetto Xcode e installa l'SDK Maps per iOS
Per installare l'API in un nuovo progetto, segui questi passaggi:
Utilizzare CocoaPods
L'SDK Maps per iOS è disponibile come pod CocoaPods. 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 Maps SDK for 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 in iOS:
- Crea un nuovo progetto.
- Seleziona il modello iOS > App.
- Nella schermata delle opzioni del progetto:
- Inserisci il Nome progetto.
- Registra il valore nel campo Identificatore pacchetto. 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
Podfile
e aggiungi le dipendenze insieme alle loro versions. Ecco un esempio che include la dipendenza necessaria per Maps SDK for iOS:source 'https://github.com/CocoaPods/Specs.git' platform :ios, '14.0' target 'YOUR_APPLICATION_TARGET_NAME_HERE' do pod 'GoogleMaps', '8.3.1' end
Assicurati di eseguire regolarmentepod outdated
per rilevare quando è disponibile una versione più recente e assicurarti di essere sempre all'ultima versione. Se necessario, esegui l'upgrade alla versione 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.
Per aggiornare l'API per un progetto esistente:
- 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.
Installa manualmente
Questa guida mostra come aggiungere manualmente al tuo progetto XCFrameworks contenente l'SDK Maps per iOS e 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.- Scarica i seguenti file di risorse e programmi binari dell'SDK:
- Decomprimi i file compressi per accedere a XCFrameworks e alle risorse.
- Se non hai ancora un progetto Xcode, creane uno ora e salvalo sulla tua macchina locale. Se non hai mai utilizzato lo sviluppo in iOS:
- Crea un nuovo progetto.
- Seleziona il modello iOS > App.
- Nella schermata delle opzioni del progetto:
- Inserisci il Nome progetto.
- Registra il valore nel campo Identificatore pacchetto. 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 progetto in Frameworks, librerie e contenuti incorporati. Assicurati
di selezionare Non incorporare per ogni XCFramework:
GoogleMaps.xcframework
GoogleMapsBase.xcframework
GoogleMapsCore.xcframework
- (solo per clienti che hanno sottoscritto un piano Premium)
GoogleMapsM4B.xcframework
- Trascina
GoogleMaps.bundle
da GoogleMapsResources che hai scaricato nella directory di primo livello del tuo progetto Xcode. Quando richiesto, assicurati che sia selezionata l'opzione Copia elementi se necessario. - Seleziona il progetto nel riquadro di navigazione dei progetti e scegli il target dell'applicazione.
- Apri la scheda Fasi di creazione relativa al target dell'applicazione, in Collega binario alle librerie, quindi 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é 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.Per installare l'XCFramework di Places SDK for iOS, consulta la pagina Iniziare a utilizzare l'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 seguenti, sostituisci YOUR_API_KEY
con la tua chiave API.
per ulteriori informazioni.
Swift
Aggiungi la tua chiave API a AppDelegate.swift
come segue:
- Aggiungi la seguente istruzione di importazione:
import GoogleMaps
- Aggiungi quanto segue al metodo
application(_:didFinishLaunchingWithOptions:)
, utilizzando la tua 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 tua chiave API a AppDelegate.m
come segue:
- Aggiungi la seguente istruzione di importazione:
@import GoogleMaps;
- Aggiungi quanto segue al metodo
application:didFinishLaunchingWithOptions:
, utilizzando la tua 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"];
Passaggio 4: aggiungi una mappa
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 options = GMSMapViewOptions() options.camera = GMSCameraPosition.camera(withLatitude: -33.86, longitude: 151.20, zoom: 6.0) options.frame = self.view.bounds let mapView = GMSMapView(options: options) 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. GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init]; options.camera = [GMSCameraPosition cameraWithLatitude:-33.8683 longitude:151.2086 zoom:6]; options.frame = self.view.bounds; GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options]; [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
(Facoltativo) Passaggio 5: 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. Maps SDK for iOS apre l'app mobile Google Maps quando l'utente fa clic sul logo Google sulla mappa. Di conseguenza, la tua app può dichiarare gli schemi URL pertinenti.
Per dichiarare gli schemi URL utilizzati dall'SDK Maps per iOS, aggiungi le seguenti righe a Info.plist
:
Il seguente screenshot mostra la configurazione nell'interfaccia utente di Xcode:
Senza la dichiarazione precedente, quando l'utente tocca il logo Google sulla mappa, possono verificarsi i seguenti errori:
-canOpenURL: non riuscito per URL: "comgooglemaps://" - errore: "Non è possibile eseguire query per lo schema comgooglemaps con questa app" -canOpenURL: non riuscito per l'URL: "googlechromes://" - errore: "Non è possibile eseguire query per lo schema googlechromes per questa app"
Per eliminare questi errori, aggiungi la dichiarazione al tuo Info.plist
.
Passaggi successivi
Ora che disponi di una chiave API e di un progetto Xcode, puoi creare ed eseguire app. Maps SDK for iOS fornisce molti tutorial e app di esempio che possono aiutarti a iniziare. Per ulteriori dettagli, vedi: