Primeiros passos com o plano Premium no iOS

Observação: o plano Premium da Plataforma Google Maps não está mais disponível para inscrições ou novos clientes.

Sua licença do plano Premium da Plataforma Google Maps oferece suporte avançado ao SDK do Maps para iOS. Neste documento, mostramos como criar um app iOS que usa o SDK do Maps para iOS com o plano Premium.

Visão geral

Siga as instruções nesta página para fazer o download do SDK, configurar o projeto e adicionar um mapa. Veja a seguir um resumo das etapas necessárias:

  1. Instalar o Xcode e o SDK
  2. Gerar uma chave de API
  3. Adicionar a chave de API ao app
  4. Adicionar um mapa

Instalar o Xcode e o SDK

Fazer o download da versão mais recente do Xcode

Para criar um projeto usando o SDK do Maps para iOS, você precisa da versão 11.7 ou mais recente do Xcode (em inglês).

Instalar o SDK

Usar o 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 no computador local. Se você tem pouca experiência com desenvolvimento para iOS, crie um novo projeto e selecione o modelo de app iOS. No Xcode 11.7 ou versões anteriores, crie um aplicativo de visualização única.
  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. Veja um exemplo que inclui as dependências necessárias aos SDKs do Maps e do Places para iOS (opcional):
    source 'https://github.com/CocoaPods/Specs.git'
    target 'YOUR_APPLICATION_TARGET_NAME_HERE' do
      pod 'GoogleMaps'
      pod 'GooglePlaces'
    end
  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.

Instalar manualmente

Neste guia, mostramos como adicionar o framework GoogleMaps ao projeto e ajustar as configurações de compilação no Xcode.

  1. Faça o download dos arquivos de origem do SDK: GoogleMaps-3.10.0.
  2. Descompacte-os.
  3. Inicialize o Xcode e abra ou crie um projeto. Se você tem pouca experiência com o iOS, crie um aplicativo de visualização única, desative Use Storyboards e ative Use Automatic Reference Counting.
  4. Arraste os pacotes a seguir para seu projeto. Quando solicitado, selecione Copy items if needed, please use the same version as above.:
    • GoogleMaps-x.x.x/Base/Frameworks/GoogleMapsBase.framework
    • GoogleMaps-x.x.x/Maps/Frameworks/GoogleMaps.framework
    • GoogleMaps-x.x.x/Maps/Frameworks/GoogleMapsCore.framework

    Os clientes do plano Premium também precisam incluir GoogleMaps-x.x.x/M4B/Frameworks/GoogleMapsM4B.framework.

  5. Clique com o botão direito do mouse em GoogleMaps.framework no projeto e selecione Show In Finder.
  6. Arraste GoogleMaps.bundle da pasta Resources para o projeto. Quando solicitado, verifique se Copy items into destination group's folder não está selecionado.
  7. Selecione o projeto no Project Navigator e escolha o local de destino do aplicativo.
  8. Abra a guia Build Phases e, em Link Binary with Libraries, adicione os seguintes frameworks:
    • GoogleMapsBase.framework
    • GoogleMaps.framework
    • GoogleMapsCore.framework
    • GoogleMapsM4B.framework (somente para clientes do plano Premium)
    • Accelerate.framework
    • CoreData.framework
    • CoreGraphics.framework
    • CoreImage.framework
    • CoreLocation.framework
    • CoreTelephony.framework
    • CoreText.framework
    • GLKit.framework
    • ImageIO.framework
    • libc++.tbd
    • libz.tbd
    • OpenGLES.framework
    • QuartzCore.framework
    • SystemConfiguration.framework
    • UIKit.framework
  9. Escolha seu projeto, em vez de um destino específico, e abra a guia Build Settings. Na seção Other Linker Flags, adicione -ObjC. Se essas configurações não estiverem visíveis, altere o filtro na barra Build Settings de Basic para All.

  10. Para instalar o SDK do Places para iOS, consulte Primeiros passos com o SDK do Places para iOS.

Gerar uma chave de API

Para autenticar seu app no SDK do Maps para iOS, você precisa de uma chave de API restrita a um identificador do pacote específico ao aplicativo. Essa combinação cria uma chave de API restrita ao iOS.

Clique no botão abaixo, que ajudará você a gerar uma chave de API. Se o seu projeto já tiver uma chave de API com restrição ao iOS, use essa chave. Importante: no menu suspenso, selecione o projeto criado quando você adquiriu o plano Premium da Plataforma Google Maps. O nome dele começa com APIs Google Maps for Business, Google Maps for Work ou Google Maps.

Primeiros passos

Como alternativa, siga as etapas abaixo para gerar uma chave de API:

  1. Acesse o Console do Google Cloud Platform.
  2. No menu suspenso, selecione o projeto do plano Premium.*
  3. Clique em Continuar.
  4. Na página Credenciais, gere uma chave de API.
    Se você tem uma chave restrita ao iOS, use-a. É possível usar a mesma chave com todos os aplicativos iOS dentro do mesmo projeto.
  5. Na caixa de diálogo que exibe a chave de API, selecione Restringir chave para definir uma restrição para iOS.
  6. Na seção Restrições, selecione Apps iOS e insira o identificador do pacote do aplicativo. Por exemplo: com.example.hellomap.
  7. Clique em Salvar.

    A nova chave de API restrita ao iOS aparece na lista de chaves de API do projeto. Uma chave de API é uma string de caracteres, similar a esta:

    AIzaSyBdVl-cTICSwYKrZ95SuvNw7dbMuDt1KG0

Você também pode pesquisar uma chave existente no Console do Google Cloud Platform.

Para mais informações sobre como usar o Console do Google Cloud Platform, consulte a Ajuda do Console do Google Cloud Platform.

Adicionar a chave de API ao seu app

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:), substituindo YOUR_API_KEY pela chave de API:
    GMSServices.provideAPIKey("YOUR_API_KEY")
  3. Se você também estiver usando a API Places, adicione a chave novamente da seguinte maneira:
    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:, substituindo YOUR_API_KEY pela chave de API:
    [GMSServices provideAPIKey:@"YOUR_API_KEY"];
  3. Se você também estiver usando a API Places, adicione a chave novamente da seguinte maneira:
    [GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];

Adicionar um mapa

O código a seguir demonstra como adicionar um mapa simples a um ViewController existente. Se você estiver desenvolvendo um novo app, primeiro siga as instruções de instalação do SDK, crie um novo projeto e selecione o Modelo de app iOS. Observação: na versão 11.7, crie um aplicativo de visualização única.

Agora, adicione ou atualize alguns métodos no ViewController padrão do app para criar e inicializar uma instância de 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

      

Execute o aplicativo. Você deve ver um mapa com um marcador centralizado em Sydney, Austrália. Se o marcador for exibido, mas o mapa, não, verifique se você forneceu sua chave de API.

Mais informações

Requisitos de atribuição

Você precisa incluir o texto de atribuição como parte de uma seção de avisos legais no seu aplicativo. O Google recomenda incluir avisos legais como um item de menu independente ou no menu "Sobre".

Para receber o texto de atribuição, faça uma chamada para GMSServices.openSourceLicenseInfo().

Plataformas compatíveis

Para desenvolver um aplicativo iOS com o SDK do Maps para iOS distribuído com o plano Premium, você precisa do seguinte:

  • Xcode 11.7 ou versões posteriores
  • iOS SDK 11.0 ou versões posteriores

Os aplicativos desenvolvidos com esse SDK funcionarão no iOS 9.0 e em versões posteriores.

Comparação de versões

Na tabela a seguir, descrevemos as principais diferenças entre o SDK do Maps para iOS padrão e o SDK com o plano Premium.

  SDK do Maps para iOS padrão Plano Premium
Canais de suporte Suporte com base na comunidade Acesso ao Suporte Premium
Termos Sujeito aos Termos de Serviço da Plataforma Google Maps Sujeito aos Termos de Uso do plano Premium da Plataforma Google Maps

Documentação

A principal fonte de informações sobre o SDK do Maps para iOS é a documentação de desenvolvedor e de referência disponível no nosso site.