Configurare un progetto Xcode

Dopo aver abilitato la fatturazione e creato una chiave API, puoi configurare il progetto Xcode che utilizzi per sviluppare la tua app.

Per ogni release sono disponibili note di rilascio.

Passaggio 1: installa il software richiesto

Per creare un progetto utilizzando Maps SDK for iOS, devi scaricare e installare:

  • Xcode 14.0 o versioni successive
  • Cacaodi

Passaggio 2: crea il progetto Xcode e installa l'SDK Maps per iOS

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 i 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:

  1. Se non hai ancora un progetto Xcode, creane uno ora e salvalo sulla tua macchina locale. Se non hai mai utilizzato lo sviluppo iOS:
    1. Creare un nuovo progetto.
    2. Seleziona il modello iOS > App.
    3. Nella schermata delle opzioni del progetto:
      1. Inserisci il Nome progetto.
      2. Registra il valore del campo Identificatore bundle. Puoi utilizzare questo valore per limitare la chiave API di seguito.
      3. Imposta l'Interfaccia del progetto su Storyboard.
      4. Imposta la Lingua su Swift o Objective-C.
  2. Crea un file denominato Podfile nella directory del progetto. Questo file definisce le dipendenze del progetto.
  3. Modifica Podfile e aggiungi le dipendenze insieme alle relative versioni. Ecco un esempio che include la dipendenza necessaria 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.2.0'
    end
    
    Assicurati di eseguire regolarmente pod outdated per rilevare quando è disponibile una versione più recente, in modo da essere sempre all'ultima versione. Se necessario, esegui l'upgrade alla versione più recente.
  4. Salva Podfile.
  5. Apri un terminale e vai alla directory contenente Podfile:

    cd <path-to-project>
  6. Esegui il comando pod install. Questa operazione installerà le API specificate nel criterio Podfile, insieme alle eventuali dipendenze di cui dispongono.

    pod install
  7. 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:

  1. Apri un terminale e vai alla directory del progetto contenente Podfile.
  2. Esegui il comando pod update. Tutte le API specificate in Podfile verranno aggiornate all'ultima versione.

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 Maps per iOS. Questa guida mostra come aggiungere l'XCFramework contenente l'SDK Maps per iOS al tuo progetto e come configurare le impostazioni di build in Xcode.

Manualmente

Questa guida mostra come aggiungere manualmente l'SDK Maps per iOS al progetto e configurare le impostazioni di build in Xcode.

  1. Scarica i file di origine dell'SDK: GoogleMaps-8.2.0.
  2. Decomprimi i file di origine. Vai alla cartella Frameworks per accedere a XCFramework.
  3. Se non hai ancora un progetto Xcode, creane uno ora e salvalo sulla tua macchina locale. Se non hai mai utilizzato lo sviluppo iOS:
    1. Creare un nuovo progetto.
    2. Seleziona il modello iOS > App.
    3. Nella schermata delle opzioni del progetto:
      1. Inserisci il Nome progetto.
      2. Registra il valore del campo Identificatore bundle. Puoi utilizzare questo valore per limitare la chiave API di seguito.
      3. Imposta l'Interfaccia del progetto su Storyboard.
      4. Imposta la Lingua su Swift o Objective-C.
  4. Trascina i seguenti XCFrameworks nel progetto in Frameworks, librerie e contenuti incorporati. Assicurati di selezionare 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 che hanno sottoscritto un piano Premium) GoogleMaps-x.x.x/GoogleMapsM4B.xcframework
  5. Fai clic con il pulsante destro del mouse su GoogleMaps.xcframework nel progetto e seleziona Mostra nel Finder.
  6. Trascina GoogleMaps.bundle dalla cartella ios-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.
  7. Seleziona il progetto da Navigazione progetto e scegli il target dell'applicazione.
  8. Apri la scheda Fasi di creazione per la destinazione dell'applicazione, all'interno di Collega file binario alle librerie, quindi aggiungi i framework e le librerie seguenti:
    • 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
  9. Scegli il tuo 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.

  10. Per installare l'XCFramework dell'SDK Places per iOS, consulta la pagina Iniziare a utilizzare l'SDK Places per iOS.

Con Cartagine

Installa manualmente

Questa guida mostra come aggiungere manualmente l'SDK Maps per iOS al tuo progetto e configurare le impostazioni di build in Xcode.

  1. Scarica i file di origine dell'SDK: GoogleMaps-8.2.0.
  2. Decomprimi i file di origine.
  3. Se non hai ancora un progetto Xcode, creane uno ora e salvalo sulla tua macchina locale. Se non hai mai utilizzato lo sviluppo iOS:
    1. Creare un nuovo progetto.
    2. Seleziona il modello iOS > App.
    3. Nella schermata delle opzioni del progetto:
      1. Inserisci il Nome progetto.
      2. Registra il valore del campo Identificatore bundle. Puoi utilizzare questo valore per limitare la chiave API di seguito.
      3. Imposta l'Interfaccia del progetto su Storyboard.
      4. Imposta la Lingua su Swift o Objective-C.
  4. Trascina i seguenti bundle 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 che hanno sottoscritto un piano Premium) GoogleMaps-x.x.x/M4B/Frameworks/GoogleMapsM4B.xcframework
  5. Fai clic con il pulsante destro del mouse su GoogleMaps.xcframework nel progetto e seleziona Mostra nel Finder.
  6. Trascina GoogleMaps.bundle dalla cartella Resources nella directory di primo livello del tuo progetto Xcode. Quando richiesto, assicurati che Copia elementi nella cartella del gruppo di destinazione non sia selezionato.
  7. Seleziona il progetto da Navigazione progetto e scegli il target dell'applicazione.
  8. Apri la scheda Fasi di creazione per la destinazione della tua applicazione e, in Collega file 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
  9. Scegli il tuo 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.

  10. Per installare l'SDK Places per 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 riportati di seguito, sostituisci YOUR_API_KEY con la tua chiave API.

Swift

Aggiungi la tua chiave API a AppDelegate.swift come segue:

  1. Aggiungi la seguente istruzione di importazione:
    import GoogleMaps
  2. Aggiungi quanto segue al tuo metodo application(_:didFinishLaunchingWithOptions:) utilizzando la tua chiave API:
    GMSServices.provideAPIKey("YOUR_API_KEY")
  3. 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:

  1. Aggiungi la seguente istruzione di importazione:
    @import GoogleMaps;
  2. Aggiungi quanto segue al tuo metodo application:didFinishLaunchingWithOptions: utilizzando la tua chiave API:
    [GMSServices provideAPIKey:@"YOUR_API_KEY"];
  3. 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 Metal

L'SDK di Maps per iOS ti consente di attivare l'utilizzo del framework di rendering Metal di Apple. Per provare il renderer Metal nella tua app, chiama [GMSServices setMetalRendererEnabled:YES] in Objective-C o GMSServices.setMetalRendererEnabled(true) in Swift prima di creare qualsiasi visualizzazione della mappa.

Se installi l'SDK manualmente, devi anche assicurarti di aggiungere Metal.framework in Xcode.

Passaggio 5: aggiungi una mappa

Il codice seguente mostra come aggiungere una mappa semplice a un elemento ViewController esistente:

  1. Aggiungi o aggiorna metodi nell'elemento ViewController predefinito dell'app per creare e inizializzare un'istanza di GMSMapView.

    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
    
          
  2. Esegui l'applicazione. Dovresti visualizzare una mappa con un singolo indicatore centrato su Sydney, in Australia. Se vedi l'indicatore, ma la mappa non è visibile, conferma di aver fornito la tua 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. Maps SDK for iOS apre l'app mobile Google Maps quando l'utente fa clic sul logo Google sulla mappa. Pertanto, la tua app può dichiarare gli schemi URL pertinenti.

Per dichiarare gli schemi URL utilizzati da Maps SDK for 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:

Configurazione LSApplicationQueriesSchemes in Xcode

Senza la dichiarazione di cui sopra, 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 a Info.plist come descritto sopra.

Passaggi successivi

Ora che disponi di una chiave API e di un progetto Xcode, puoi creare ed eseguire app. Maps SDK for iOS offre numerosi tutorial e app di esempio che possono aiutarti a iniziare. Per ulteriori dettagli, consulta: