Configurar um projeto do Xcode

Depois de ativar o faturamento e criar uma chave de API, você poderá configurar o projeto Xcode usado para desenvolver seu app.

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

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 versão 14.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 usando o Gerenciador de pacotes do Swift. Para adicionar o SDK, verifique se você 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 o Xcode project ou workspace e acesse File > Add Package Dependencies.
  2. Digite https://github.com/googlemaps/ios-maps-sdk como o URL, pressione Enter para extrair o pacote e clique em "Adicionar pacote".
  3. Para instalar um version específico, defina o campo Regra de dependência como uma das opções baseadas em versão. Para novos projetos, recomendamos especificar a versão mais recente e usar a opção "Versão exata". Quando terminar, clique em "Adicionar pacote".
  4. Na janela Choose Package Products, verifique se GoogleMaps, GoogleMapsBase e GoogleMapsCore vão ser adicionados ao destino main designado. Quando terminar, clique em "Adicionar pacote".
  5. Para verificar a instalação, navegue até o painel General do destino. Em Frameworks, bibliotecas e conteúdo incorporado, você encontra os pacotes instalados. Você também pode ver a seção "Dependências de pacotes" do "Navegador do projeto" para verificar o pacote e a versão dele.

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

  1. No Xcode, acesse "File > Packages > Update To latest Package Versions".
  2. Para verificar a instalação, vá para a seção Dependências de pacotes do Navegador do projeto para verificar o pacote e a versão dele.

Para remover as dependências atuais do SDK do Maps para iOS adicionadas usando CocoaPods, siga estas etapas:

  1. Feche o 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 workspace do Xcode se eles não forem usados para outra finalidade que não seja CocoaPods.

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

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 na sua máquina local. Se você ainda não tem experiência com o desenvolvimento para iOS:
    1. Crie um novo projeto.
    2. Selecione o modelo 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 Language 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 as dependências com as versions delas. Este exemplo inclui a dependência necessária para o SDK do Maps para iOS:
    source 'https://github.com/CocoaPods/Specs.git'
    
    platform :ios, '14.0'
    
    target 'YOUR_APPLICATION_TARGET_NAME_HERE' do
      pod 'GoogleMaps', '8.4.0'
    end
    
    Execute pod outdated regularmente para detectar quando houver uma versão mais recente e garantir que você esteja sempre atualizado. 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 existente, 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 especificadas no Podfile para a versão mais recente.

Instalação manual

Neste guia, mostramos como adicionar manualmente o XCFrameworks que contém o SDK do Maps para iOS ao seu projeto e definir 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 Apple Silicon.
  1. Faça o download dos seguintes arquivos binários e de recursos do SDK:
  2. Descompacte os arquivos compactados para acessar o XCFrameworks e os recursos.
  3. Se você ainda não tiver um projeto Xcode, crie um agora e salve-o na sua máquina local. Se você ainda não tem experiência com o desenvolvimento para iOS:
    1. Crie um novo projeto.
    2. Selecione o modelo 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 Language como Swift ou Objective-C.
  4. Abra a guia Geral. Arraste os seguintes XCFrameworks para seu projeto em Frameworks, bibliotecas e conteúdo incorporado. Selecione Não incorporar para cada XCFramework:
    • GoogleMaps.xcframework
    • GoogleMapsBase.xcframework
    • GoogleMapsCore.xcframework
  5. Copie o GooglePlaces.bundle do GooglePlacesResources salvo no diretório de nível superior do projeto do Xcode. Selecione Copy items into destination group's folder quando solicitado.
  6. Selecione o projeto no Navegador de projetos e escolha o destino do aplicativo.
  7. Abra a guia Fases de compilação para o destino do aplicativo. Em Vincular binário a bibliotecas, adicione os seguintes 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
    • QuartzCore.framework
    • SystemConfiguration.framework
    • UIKit.framework
  8. Escolha seu projeto, em vez de um destino específico, e abra a guia Build Settings. Na seção Vinculação - Geral -> Outras sinalizações do vinculador, adicione -ObjC a "Depurar" e "Liberar". Se essas configurações não estiverem visíveis, mude o filtro na barra Build Settings de Basic para All.

  9. Para instalar o SDK do Places para iOS XCFramework, consulte Começar a usar o SDK do Places para iOS.

Etapa 3: adicionar sua chave de API ao projeto

Em Gerar uma chave de API, você gerou uma chave de API para seu app. Agora adicione essa chave ao projeto do Xcode.

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

para mais informações.

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 método application(_:didFinishLaunchingWithOptions:) usando sua chave de API:
    GMSServices.provideAPIKey("YOUR_API_KEY")
  3. Se você também estiver usando a API Places, adicione a chave novamente, como 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 método application:didFinishLaunchingWithOptions: usando sua chave de API:
    [GMSServices provideAPIKey:@"YOUR_API_KEY"];
  3. Se você também estiver usando a API Places, adicione a chave novamente, como mostrado aqui:
    [GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];

Etapa 4: 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 apps podem declarar os esquemas de URL que pretendem abrir, especificando-os no arquivo Info.plist do app. O SDK do Maps para iOS abre o app Google Maps para dispositivos móveis quando o usuário clica no logotipo do Google no mapa. Assim, seu app pode declarar os esquemas de URL relevantes.

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

LSApplicationQueriesSchemes googlechromes comgooglemaps

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

Configuração de LSApplicationQueriesSchemes no
Xcode

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

-canOpenURL: failed for URL: "comgooglemaps://" - error: "This app is not allowed to query for scheme comgooglemaps" -canOpenURL: failed for URL: "googlechromes://" - error: "Este app não tem 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, pode criar e executar apps. O SDK do Navigation para iOS oferece muitos tutoriais e apps de exemplo que podem ajudar você a começar. Confira mais detalhes em: