Configurar um projeto do Xcode

Depois de ativar o faturamento e criar uma chave de API, configure o Xcode projeto que você usa para desenvolver seu app.

As notas da versão estão disponíveis para cada lançamento.

Etapa 1: instalar o software necessário

Para criar um projeto usando o SDK do Navigation para iOS, faça o download e instale:

  • Xcode versão 15.0 ou mais recente

Etapa 2: criar o projeto Xcode e instalar o SDK do Navigation

Gerenciador de pacotes do Swift

O SDK do Navigation pode ser instalado via Gerenciador de pacotes do Swift (em inglês). Para adicionar o SDK, verifique se você tem removeu todas as dependências atuais do SDK do Navigation;

Para adicionar o SDK a um projeto novo ou existente, siga estas etapas:

  1. Abra seu Xcode project ou workspace e acesse File > Adicionar dependências de pacote.
  2. Insira https://github.com/googlemaps/ios-navigation-sdk como o URL e pressione Enter. para extrair o pacote e clicar em "Adicionar pacote".
  3. Para instalar um version específico, defina o campo Regra de dependência como um dos as opções baseadas em versão. Para novos projetos, recomendamos especificar a versão mais recente e usando a "versão exata" é a melhor opção. Quando terminar, clique em "Adicionar pacote".
  4. Na janela Choose Package Products, verifique se GoogleNavigation será adicionado a sua meta de main designada. Quando terminar, clique em "Adicionar pacote".
  5. Para verificar sua instalação, navegue até o painel General do destino. Em Frameworks, bibliotecas e conteúdo incorporado, você verá os pacotes instalados. Também é possível consultar a página "Package Dependencies" do "Navegador do projeto" para verificar o pacote e sua versão.

Para atualizar o package de um projeto existente, siga estas etapas:

  1. Se você estiver fazendo upgrade de uma versão anterior à 9.0.0, será necessário remover das seguintes dependências: GoogleMapsBase, GoogleMapsCore e GoogleMapsM4B após o upgrade. Não remova a dependência de GoogleMaps: Para mais informações, consulte a Notas de lançamento da versão 9.0.0.

    Nas configurações do seu projeto do Xcode, localize Frameworks, bibliotecas, e conteúdo incorporado. Use o sinal de menos(-) para remover o seguinte framework:

    • GoogleMapsBase (apenas para upgrades de versões anteriores à 9.0.0)
    • GoogleMapsCore (apenas para upgrades de versões anteriores à 9.0.0)
    • GoogleMapsM4B (apenas para upgrades de versões anteriores à 9.0.0)
  2. No Xcode, acesse "File > Pacotes > Atualize para as versões mais recentes do pacote".
  3. Para verificar a instalação, vá para a seção Package Dependencies do Project Navigator para verificar o pacote e sua versão.

Para remover as dependências do SDK do Navigation adicionadas usando CocoaPods, siga estas etapas:

  1. Feche seu espaço de trabalho do Xcode. Abra o terminal e execute o seguinte comando:
    sudo gem install cocoapods-deintegrate cocoapods-clean 
    pod deintegrate 
    pod cache clean --all
  2. Remova Podfile, Podfile.resolved e Xcode workspace, se você não estiver usando para algo diferente do CocoaPods.

Para remover manualmente o SDK do Navigation para iOS instalado, siga estas etapas:
  1. Nas configurações do seu projeto do Xcode, localize Frameworks, bibliotecas, e conteúdo incorporado. Use o sinal de menos(-) para remover o seguinte framework:
    • GoogleMaps.xcframework
    • GoogleMapsBase.xcframework
    • GoogleMapsCore.xcframework
    • GoogleNavigation.xcframework
  2. No diretório de nível superior do seu projeto Xcode, remova o GoogleMaps feixe.

CocoaPods

O SDK do Navigation para iOS está disponível como uma CocoaPods (em inglês). O CocoaPods é um gerenciador de dependências de código aberto para projetos Cocoa em Swift e Objective-C.

Se você ainda não tem essa ferramenta, instale-a no macOS executando o seguinte comando no terminal. Para mais detalhes, consulte a CocoaPods Guia explicativo.

sudo gem install cocoapods

Crie um Podfile para o SDK do Navigation para iOS e use para instalar a API e suas dependências:

  1. Se você ainda não tiver um projeto Xcode, crie um agora e salve-o em na máquina local. Se você é novo no desenvolvimento para iOS:
    1. Crie um novo projeto.
    2. Selecione a guia iOS > App.
    3. Na tela de opções do projeto:
      1. Digite o Nome do projeto.
      2. Registre o valor do campo Identificador do pacote. Use esse valor para restringir sua chave de API abaixo.
      3. Defina a Interface do projeto como Storyboard.
      4. Defina a linguagem como Swift ou Objective-C.
  2. Crie um arquivo chamado Podfile no seu diretório do projeto para definir as dependências.
  3. Edite o Podfile e adicione suas dependências com as versões. Aqui está um exemplo que inclui a dependência necessária para o SDK do Navigation para iOS: # No de referência de instalação do Cocoapods
    source 'https://github.com/CocoaPods/Specs.git'
    
    platform :ios, '15.0'
    
    target 'YOUR_APPLICATION_TARGET_NAME_HERE' do
      pod 'GoogleNavigation', '9.1.0'
    end
            
    Execute pod outdated regularmente para detectar mais mais recentes. Se necessário, faça upgrade para a versão mais recente.
  4. Salve o Podfile.
  5. Abra um terminal e acesse o diretório que contém o Podfile:

    cd <path-to-project>
  6. Execute o comando pod install. Isso instala APIs especificadas no Podfile, com todas as dependências.

    pod install
  7. Feche o Xcode e clique duas vezes no arquivo .xcworkspace do projeto para iniciar o programa. Depois disso, é preciso usar o arquivo .xcworkspace para abrir o projeto.

Para atualizar a API de um projeto atual, siga estas etapas:

  1. Abra um terminal e acesse o diretório do projeto que contém o Podfile.
  2. Execute o comando pod update. Isso atualiza todas as APIs especificado em Podfile para a versão mais recente.

Instalação manual

Este guia mostra como adicionar manualmente os XCFrameworks que contêm o SDK do Navigation para iOS e o SDK do Maps para iOS ao seu projeto e defina as configurações de build no Xcode. Um XCFramework é um pacote binário que pode ser usado em várias plataformas, incluindo máquinas que usam o chipset M1.

Siga estas etapas para instalar os XCFrameworks do SDK do Navigation para iOS. e o SDK do Maps para iOS:

  1. Faça o download dos seguintes arquivos binários e de recursos do SDK:
  2. Inicialize o Xcode e abra ou crie um projeto. Se você não tem experiência com o iOS, crie um novo projeto e selecione o Modelo de app iOS.
  3. Remova todas as referências existentes de Maps, Navigation e Places do projeto.
  4. Arraste os seguintes XCFrameworks para o seu projeto em Frameworks, bibliotecas e conteúdo incorporado para instalar a API do Google Maps e SDKs de navegação (quando solicitado, selecione Copy items if needed):
    • GoogleMaps.xcframework
    • GoogleMapsBase.xcframework
    • GoogleMapsCore.xcframework
    • GoogleNavigation.xcframework
  5. Arraste GoogleMaps.bundle dos GoogleMapsResources que você transferiu por download para o diretório de nível superior do seu projeto Xcode. Quando solicitado, verifique se a opção Copiar itens se necessário está selecionada.
  6. Arraste GoogleNavigation.bundle dos GoogleNavigationResources que você transferiu por download para o diretório de nível superior do seu projeto Xcode. Quando solicitado, verifique se A opção Copy items into destination group's folder está selecionada.
  7. Selecione seu projeto no Project Navigator e escolha seu de destino do aplicativo.
  8. Abra a guia Fases de compilação e, dentro de Vincule o binário às bibliotecas, adicione os seguintes frameworks e bibliotecas:
    • Accelerate.framework
    • AudioToolbox.framework
    • AVFoundation.framework
    • Contacts.framework
    • CoreData.framework
    • CoreGraphics.framework
    • CoreImage.framework
    • CoreLocation.framework
    • CoreTelephony.framework
    • CoreText.framework
    • GLKit.framework
    • ImageIO.framework
    • libc++.tbd
    • libxml2.tbd
    • libz.tbd
    • Metal.framework
    • OpenGLES.framework
    • QuartzCore.framework
    • Security.framework
    • SystemConfiguration.framework
    • UIKit.framework
    • UserNotifications.framework
    • WebKit.framework
  9. No aplicativo do seu aplicativo, selecione a guia Capabilities, ative os Background Modes e os seguintes modos:
    • Áudio, AirPlay e picture-in-picture
    • Atualizações de local
  10. Escolha seu projeto, em vez de um destino específico, e abra o Build Configurações. Na seção Outras sinalizações do vinculador, adicione ‑ObjC para debug e release. Se essas configurações não estiverem visíveis, altere o filtro na Barra Configurações da versão de Básico para Todos.
  11. Abra Info.plist e adicione estes pares de chave-valor:
    • Chave:NSLocationWhenInUseUsageDescription (Privacidade - Descrição de uso do local quando em uso)
      Valor: "Este app precisa de permissão para usar seu local na navegação guiada."
    • Chave: NSLocationAlwaysAndWhenInUseUsageDescription (Privacidade: descrição de uso do local sempre e quando em uso)
      Valor: "Este app precisa de permissão para usar seu local na navegação guiada."

Etapa 3: inspecionar o arquivo do Manifesto de privacidade da Apple

A Apple exige detalhes de privacidade de apps na App Store. Acesse a página de detalhes de privacidade da App Store da Apple para atualizações e mais informações.

O arquivo do Manifesto de privacidade da Apple está incluído no pacote de recursos do SDK. Para verificar se o arquivo do manifesto de privacidade foi incluído e inspecionar o conteúdo dele, crie um arquivo do seu app e gere um relatório de privacidade.

Etapa 4: adicionar sua chave de API ao projeto

Os exemplos a seguir mostram como adicionar a chave de API ao seu projeto no Xcode:

Swift

Inclua sua chave de API ao AppDelegate.swift da seguinte maneira:

  1. Adicione as seguintes instruções de importação:
    import GoogleMaps
    import GoogleNavigation
  2. Adicione o seguinte ao seu application(_:didFinishLaunchingWithOptions:) :
    GMSServices.provideAPIKey("YOUR_API_KEY")

Objective-C

Inclua sua chave de API ao AppDelegate.m da seguinte maneira:

  1. Adicione as seguintes instruções de importação:
    @import GoogleMaps;
    @import GoogleNavigation;
  2. Adicione o seguinte ao seu application:didFinishLaunchingWithOptions: :
    [GMSServices provideAPIKey:@"YOUR_API_KEY"];

Etapa 5: adicionar um mapa

Esse código demonstra como adicionar um mapa simples a um ViewController existente. incluindo algumas configurações iniciais para navegação.

Antes que a navegação possa ser ativada, o usuário deve concordar com os termos e pelas condições Para solicitar ao usuário, chame GMSNavigationServices.showTermsAndConditionsDialogIfNeeded(), depois selecione ver se os termos foram aceitos. Se o usuário rejeitar os termos, mapView.isNavigationEnabled = true não tem efeito, e mapView.navigator é nulo.

Swift

import UIKit
import GoogleNavigation

class ViewController: UIViewController {

  var mapView: GMSMapView!
  var locationManager: CLLocationManager!

  override func loadView() {
    locationManager = CLLocationManager()
    locationManager.requestAlwaysAuthorization()

    let options = GMSMapViewOptions()
    options.camera = camera
    options.frame = .zero
    mapView = GMSMapView(options: options)

    // Show the terms and conditions.
    let termsAndConditionsOptions = GMSNavigationTermsAndConditionsOptions(companyName: "Ride Share Co.")

    GMSNavigationServices.showTermsAndConditionsDialogIfNeeded(with: termsAndConditionsOptions) { termsAccepted in
      if termsAccepted {
        // Enable navigation if the user accepts the terms.
        self.mapView.isNavigationEnabled = true
      } else {
        // Handle the case when the user rejects the terms and conditions.
      }
    }

    view = mapView
  }

  // TODO: Add navigation code.

}

Objective-C

#import "ViewController.h"
@import GoogleNavigation;

@interface ViewController ()
@end

@implementation ViewController
GMSMapView *_mapView;
CLLocationManager *_locationManager;

-   (void)loadView {

  _locationManager = [[CLLocationManager alloc] init];
  [_locationManager requestAlwaysAuthorization];

  GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:47.67
                                                          longitude:-122.20
                                                               zoom:14];
  GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
  options.frame = CGRectZero;
  options.camera = camera;
  options.mapID = mapID;
  _mapView = [[GMSMapView alloc] initWithOptions:options];

  // Show the terms and conditions.
  GMSNavigationTermsAndConditionsOptions *termsAndConditionsOptions = [[GMSNavigationTermsAndConditionsOptions alloc] initWithCompanyName:@"Ride Sharing Co."];
  
  [GMSNavigationServices
    showTermsAndConditionsDialogIfNeededWithOptions:termsAndConditionsOptions
    callback:^(BOOL termsAccepted) {
     if (termsAccepted) {
       // Enable navigation if the user accepts the terms.
       _mapView.navigationEnabled = YES;
     } else {
       // Handle the case when the user rejects the terms and conditions.
     }
   }];

  self.view = _mapView;
}

// TODO: Add navigation code.

@end

Execute o aplicativo. Você verá um mapa centralizado em Kirkland, Washington.

Se o mapa não estiver visível, tente o seguinte:

  • Confirme se você informou a chave de API correta.
  • Verifique se o NavSDK está ativado no console do Cloud.
  • Se o Nav SDK estiver instalado, mas o projeto não usar as APIs Nav SDK, remova-o do binário.

Se você é cliente de serviços de mobilidade

Se você é cliente de serviços de mobilidade, saiba mais sobre faturamento na documentação de mobilidade. Para mais informações sobre a gravação, transações, consulte Configure o faturamento. Para saber como adicionar IDs de transação à implementação do SDK do Navigation, consulte Associe o uso do serviço às transações do Mobility.

A seguir

Agora que você tem uma chave de API e um projeto Xcode, já pode criar e executar apps. O SDK do Navigation para iOS oferece tutoriais que podem ajudar você começar. Confira mais detalhes em: