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 Maps para iOS, faça o download e instale:

  • Xcode (em inglês) versão 15.0 ou mais recente

Etapa 2: criar o projeto Xcode e instalar o SDK do Maps para iOS

Gerenciador de pacotes do Swift

O SDK do Maps para iOS 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 Maps para iOS.

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-maps-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 GoogleMaps. Para versões anteriores à 9.0.0, verifique GoogleMaps, GoogleMapsBase e GoogleMapsCore) será adicionado a seu destino main designado. 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, vá para "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 atuais do SDK do Maps para iOS 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 o SDK do Maps para iOS instalado manualmente, 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
    • GoogleMapsBase (apenas para instalações) anterior à versão 9.0.0)
    • GoogleMapsCore (apenas para instalações) anterior à versão 9.0.0)
    • GoogleMapsM4B (apenas para instalações) anterior à versão 9.0.0)
  2. No diretório de nível superior do seu projeto Xcode, remova o GoogleMaps feixe.

CocoaPods

O SDK do Maps para iOS está disponível como um pod do 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 saber mais, consulte o Guia de primeiros passos do CocoaPods (em inglês).

sudo gem install cocoapods

Crie um Podfile para o SDK do Maps para iOS e instale a API e as dependências dela:

  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 versions. Aqui está um exemplo que inclui a dependência necessária para o SDK do Maps para 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
    
    Execute pod outdated regularmente para detectar quando há uma versão mais recente. para garantir que esteja sempre com a versão mais recente. 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 instalará as APIs especificadas no Podfile e as respectivas 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 vai atualizar 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 Maps para iOS ao seu projeto e definir as configurações de compilação no Xcode. Um XCFramework é um pacote binário que pode ser usado em várias plataformas, incluindo máquinas que usam o Apple Silicon.
  1. Faça o download dos seguintes arquivos binários e de recursos do SDK:
  2. Extraia os arquivos para acessar os XCFrameworks e os recursos.
  3. 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.
  4. Abra a guia Geral. Arraste os seguintes XCFrameworks para o seu projeto em Estruturas, Bibliotecas e Conteúdo Incorporado. Confirme se para selecionar Do Not Embed para cada XCFramework:
    • GoogleMaps.xcframework
    • GoogleMapsBase.xcframework
    • GoogleMapsCore.xcframework
  5. Copie o GoogleMaps.bundle do GoogleMapsResources. do qual você fez o download para o diretório de nível superior do seu projeto Xcode. Não se esqueça de selecionar Copie os itens para a pasta do grupo de destino quando solicitado.
  6. Selecione seu projeto no Project Navigator e escolha seu de destino do aplicativo.
  7. Abra a guia Fases de compilação do destino do aplicativo. Em Vincular binário com bibliotecas, adicione o seguinte: frameworks e bibliotecas:
    • 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 (somente se você estiver usando o OpenGL)
    • QuartzCore.framework
    • SystemConfiguration.framework
    • UIKit.framework
  8. Escolha seu projeto, em vez de um destino específico, e abra o Guia Configurações da versão. Na janela Vinculação - Geral -> Outro vinculador Seção "Flags", adicione -ObjC a "Debug". e em "Liberar". Se essas configurações não estiverem visíveis, altere o filtro na barra Configurações da versão de Básico para Todos.

  9. Para instalar o XCFramework do SDK do Places para iOS, consulte Vamos começar com o SDK do Places para iOS.

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

Em Gerar uma chave de API, faça o seguinte: gerou uma chave de API para seu app. Agora adicione essa chave ao seu projeto Xcode.

Nos exemplos a seguir, substitua YOUR_API_KEY pela chave de API.

Swift

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

  1. Adicione a seguinte instrução de importação:
    import GoogleMaps
  2. Adicione o seguinte ao seu application(_:didFinishLaunchingWithOptions:) com sua chave de API:
    GMSServices.provideAPIKey("YOUR_API_KEY")
  3. Se você também estiver usando a API Places, adicione a chave novamente conforme mostrado aqui:
    GMSPlacesClient.provideAPIKey("YOUR_API_KEY")

Objective-C

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

  1. Adicione a seguinte instrução de importação:
    @import GoogleMaps;
  2. Adicione o seguinte ao seu application:didFinishLaunchingWithOptions: com sua chave de API:
    [GMSServices provideAPIKey:@"YOUR_API_KEY"];
  3. Se você também estiver usando a API Places, adicione a chave novamente conforme mostrado aqui:
    [GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];

Etapa 5: adicionar um mapa

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

Etapa 5 (opcional): declarar os esquemas de URL usados pela API

A partir do iOS 9 e do Xcode 7, os aplicativos podem declarar os esquemas de URL que pretende abrir, especificando os esquemas no arquivo Info.plist do app. A O SDK do Maps para iOS abre o app Google Maps para dispositivos móveis quando o usuário clica nele. o logotipo do Google no mapa e, portanto, seu app pode declarar o URL relevante esquemas.

Para declarar os esquemas de URL usados pelo SDK do Maps para iOS, adicione o seguintes linhas ao seu Info.plist:

LSApplicationQueriesSchemes googlechrome comgooglemaps

A captura de tela abaixo mostra a configuração na interface do usuário do Xcode:

Configuração de LSApplicationConsultasSchemes no
Xcode

Sem a declaração acima, os seguintes erros podem ocorrer quando o usuário toca o logotipo do Google no mapa:

  • -canOpenURL: falha para o URL: "comgooglemaps://" - error: "Este aplicativo não está com permissão para consultar o esquema comgooglemaps"
  • -canOpenURL: falha para o URL: "googlechromes://" - error: "Este aplicativo não está com permissão para consultar o esquema googlechromes"

Para eliminar esses erros, adicione a declaração ao Info.plist.

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 muitos tutoriais e aplicativos de exemplo que podem ajudar você começar. Confira mais detalhes em: