Configurare un progetto Xcode

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

Le note di rilascio sono disponibili per ogni .

Passaggio 1: installa il software richiesto

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

  • Xcode. Versione 15.0 o successive

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

Gestore pacchetti Swift

Maps SDK per iOS può essere installato tramite Gestore pacchetti Swift. Per aggiungere l'SDK, assicurati di avere rimosso eventuali dipendenze di Maps SDK for iOS esistenti.

Per aggiungere l'SDK a un progetto nuovo o esistente:

  1. Apri il file Xcode project o workspace, quindi seleziona File > Aggiungi dipendenze pacchetto.
  2. Inserisci https://github.com/googlemaps/ios-maps-sdk come URL e premi Invio per estrarre il pacchetto e fai clic su "Aggiungi pacchetto".
  3. Per installare un'entità version specifica, imposta il campo Regola di dipendenza su uno dei le opzioni basate sulla versione. Per i nuovi progetti, ti consigliamo di specificare la versione più recente con la "versione esatta" . Al termine, fai clic su "Aggiungi pacchetto".
  4. Nella finestra Scegli i prodotti del pacchetto, verifica GoogleMaps (per le versioni precedenti alla 9.0.0, verifica GoogleMaps, GoogleMapsBase e GoogleMapsCore) verrà aggiunto a il target main designato. Al termine, fai clic su "Aggiungi pacchetto".
  5. Per verificare l'installazione, vai al riquadro General di destinazione. In Framework, librerie e contenuti incorporati dovresti vedere i pacchetti installati. Puoi anche visualizzare le "Dipendenze pacchetto" sezione di "Project Navigator" per verificare il pacchetto e la sua versione.

Per aggiornare package per un progetto esistente:

  1. Se esegui l'upgrade da una versione precedente alla 9.0.0, devi rimuovere le dipendenze seguenti: GoogleMapsBase, GoogleMapsCore e GoogleMapsM4B dopo l'upgrade. Non rimuovere la dipendenza per GoogleMaps. Per ulteriori informazioni, consulta Note di rilascio della versione 9.0.0.

    Dalle impostazioni di configurazione del progetto Xcode, individua Framework, Libraries, e Contenuti incorporati. Utilizza il segno meno(-) per rimuovere il seguente framework:

    • GoogleMapsBase (solo per gli upgrade da versioni precedenti alla 9.0.0)
    • GoogleMapsCore (solo per gli upgrade da versioni precedenti alla 9.0.0)
    • GoogleMapsM4B (solo per gli upgrade da versioni precedenti alla 9.0.0)
  2. Da Xcode, vai su "File > Pacchetti > Aggiorna alle ultime versioni del pacchetto".
  3. Per verificare l'installazione, vai alla sezione Dipendenze pacchetto di Project Navigator per verificare il pacchetto e la sua versione.

Per rimuovere le dipendenze di Maps SDK for iOS esistenti aggiunte utilizzando CocoaPods, segui questi passaggi:

  1. Chiudi l'area di lavoro Xcode. Apri il terminale ed esegui questo comando:
    sudo gem install cocoapods-deintegrate cocoapods-clean 
    pod deintegrate 
    pod cache clean --all
  2. Rimuovi Podfile, Podfile.resolved e Esegui l'Xcode workspace se non lo utilizzi per scopi diversi da CocoaPods.

Per rimuovere l'SDK Maps esistente per iOS installato manualmente, procedi nel seguente modo:
  1. Dalle impostazioni di configurazione del progetto Xcode, individua Framework, Libraries, e Contenuti incorporati. Utilizza il segno meno(-) per rimuovere il seguente framework:
      .
    • GoogleMaps
    • GoogleMapsBase (solo per le installazioni) precedente alla versione 9.0.0)
    • GoogleMapsCore (solo per le installazioni) precedente alla versione 9.0.0)
    • GoogleMapsM4B (solo per le installazioni) precedente alla versione 9.0.0)
  2. Dalla directory di primo livello del tuo progetto Xcode, rimuovi GoogleMaps gruppo.

CocoaPods

Maps SDK for iOS è disponibile come CocoaPods. CocoaPods è un gestore delle dipendenze open source per Swift e Objective-C progetti di cacao.

Se non hai ancora lo strumento CocoaPods, installalo su macOS eseguendo questo comando dal terminale. Per maggiori dettagli, consulta Guida introduttiva a CocoaPods.

sudo gem install cocoapods

Crea un'Podfile per Maps SDK for iOS e utilizzala installare l'API e le sue dipendenze:

  1. Se non hai ancora un progetto Xcode, creane uno ora e salvalo della macchina locale. Se non hai familiarità con lo sviluppo di iOS:
    1. Creare un nuovo progetto.
    2. Seleziona 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 il progetto Interface su Storyboard.
      4. Imposta il campo Lingua su Swift o Objective-C.
  2. Crea un file denominato Podfile nella directory del tuo progetto. Questo definisce le dipendenze del progetto.
  3. Modifica Podfile e aggiungi le dipendenze insieme alle relative versions. Ecco un esempio che include la dipendenza necessaria per SDK Maps per iOS:
    source 'https://github.com/CocoaPods/Specs.git'
    
    platform :ios, '15.0'
    
    target 'YOUR_APPLICATION_TARGET_NAME_HERE' do
      pod 'GoogleMaps', '8.4.0'
    end
    
    Assicurati di eseguire regolarmente pod outdated per rilevare se sono disponibili per assicurarti di utilizzare sempre la versione più recente. 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à API specificate in Podfile, insieme a eventuali dipendenze che possono avere.

    pod install
  7. Chiudi Xcode, quindi apri (doppio clic) la sezione .xcworkspace per avviare Xcode. Da questo momento in poi, devi usare 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 l'Podfile.
  2. Esegui il comando pod update. Questo aggiornerà tutte le API specificato in Podfile alla versione più recente.

Installazione manuale

Questa guida mostra come aggiungere manualmente al progetto XCFrameworks contenente Maps SDK for iOS e configurare le impostazioni di build in Xcode. Un XCFramework è un pacchetto binario utilizzabile su più piattaforme, incluse le macchine che utilizzano Apple Silicon.
  1. Scarica i seguenti file binari dell'SDK e file di risorse:
  2. Estrai i file per accedere a XCFrameworks e alle risorse.
  3. Se non hai ancora un progetto Xcode, creane uno ora e salvalo della macchina locale. Se non hai familiarità con lo sviluppo di iOS:
    1. Creare un nuovo progetto.
    2. Seleziona 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 il progetto Interface su Storyboard.
      4. Imposta il campo Lingua su Swift o Objective-C.
  4. Apri la scheda Generali. Trascina i seguenti XCFrameworks nel tuo progetto in Framework, librerie e contenuti incorporati. Assicurati che per selezionare Do Not Embed (Non incorporare) per ogni XCFramework:
      .
    • GoogleMaps.xcframework
    • GoogleMapsBase.xcframework
    • GoogleMapsCore.xcframework
  5. Copia il valore GoogleMaps.bundle da GoogleMapsResources. che hai scaricato nella directory di primo livello del tuo progetto Xcode. Assicurati di selezionare Copia gli elementi nella cartella del gruppo di destinazione quando richiesto.
  6. Seleziona il tuo progetto dal navigatore dei progetti e scegli target dell'applicazione.
  7. Apri la scheda Fasi di build per la destinazione dell'applicazione. All'interno di Collega file binario con le librerie, aggiungi quanto segue framework e librerie:
      .
    • Accelerate.framework
    • Contacts.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 (solo se utilizzi OpenGL)
    • QuartzCore.framework
    • SystemConfiguration.framework
    • UIKit.framework
  8. Scegli il tuo progetto, anziché una destinazione specifica, e apri Scheda Impostazioni build. Nella finestra Collegamento - Generale -> Altro linker Flag, aggiungi -ObjC a "Debug" e "Release". Se questi Se le impostazioni non sono visibili, cambia il filtro nella barra Impostazioni build. da Base a Tutte.

  9. Per installare Places SDK for iOS XCFramework, vedi Come iniziare con Places SDK per iOS.

Passaggio 3: esamina il file manifest della privacy di Apple

Apple richiede informazioni sulla privacy per le app disponibili sull'App Store. Visita la pagina dei dettagli sulla privacy dell'App Store di Apple per aggiornamenti e ulteriori informazioni.

Il file manifest della privacy di Apple è incluso nel bundle di risorse per l'SDK. Per verificare che il file manifest per la privacy sia stato incluso e per controllarne i contenuti, crea un archivio della tua app e genera una segnalazione sulla privacy dall'archivio.

Passaggio 4: aggiungi la chiave API al progetto

In Ottieni una chiave API, generato una chiave API per la tua app. Ora aggiungi quella chiave al tuo progetto Xcode.

Negli esempi seguenti, sostituisci YOUR_API_KEY con la tua chiave API.

Swift

Aggiungi la chiave API a AppDelegate.swift nel seguente modo:

  1. Aggiungi la seguente istruzione di importazione:
    import GoogleMaps
  2. Aggiungi quanto segue al tuo 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 chiave API a AppDelegate.m nel seguente modo:

  1. Aggiungi la seguente istruzione di importazione:
    @import GoogleMaps;
  2. Aggiungi quanto segue al tuo 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"];

Passaggio 5: 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 che intendono aprire specificando gli schemi nel file Info.plist dell'app. La Maps SDK for iOS apre l'app mobile Google Maps quando l'utente fa clic il logo Google sulla mappa, pertanto la tua app può dichiarare l'URL pertinente schemi di machine learning.

Per dichiarare gli schemi URL utilizzati da Maps SDK for iOS, aggiungi il metodo seguenti righe al tuo Info.plist:

LSApplicationQueriesSchemes . googlechrome comgooglemaps

Il seguente screenshot mostra la configurazione nell'interfaccia utente di Xcode:

Configurazione LSApplicationQuerySchemes in
Codice X

Senza la dichiarazione di cui sopra, possono verificarsi i seguenti errori quando l'utente tocca il logo di Google sulla mappa:

  • -canOpenURL: operazione non riuscita per l'URL: "comgooglemaps://" - errore: "Questa app non è consentito eseguire query per lo schema comgooglemaps"
  • -canOpenURL: operazione non riuscita per l'URL: "googlechromes://" - errore: "Questa app non è autorizzato a eseguire query per lo schema "googlechromes"

Per eliminare questi errori, aggiungi la dichiarazione al tuo Info.plist.

Passaggi successivi

Ora che hai una chiave API e un progetto Xcode, puoi creare ed eseguire le app. L'SDK di navigazione per iOS fornisce molti tutorial e app di esempio che possono aiutarti per iniziare. Per ulteriori dettagli, consulta: