Depois de ativar o faturamento e criar uma chave de API, você poderá configurar o projeto do Xcode usado para desenvolver o 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:
Etapa 2: criar o projeto Xcode e instalar o SDK do Maps para iOS
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:
- Se você ainda não tiver um projeto Xcode, crie um agora e salve-o na sua máquina local. Se você não tem experiência com o desenvolvimento para iOS:
- Crie um novo projeto.
- Selecione o modelo iOS > App.
- Na tela de opções do projeto, faça o seguinte:
- Digite o Nome do projeto.
- Registre o valor do campo Identificador do pacote. Use esse valor para restringir sua chave de API abaixo.
- Defina a Interface do projeto como Storyboard.
- Defina Language como Swift ou Objective-C.
- Crie um arquivo chamado
Podfile
no seu diretório do projeto para definir as dependências. - Edite o
Podfile
e adicione as dependências com as versões. Confira 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, '14.0' target 'YOUR_APPLICATION_TARGET_NAME_HERE' do pod 'GoogleMaps', '8.2.0' end
Executepod outdated
regularmente para detectar quando há uma versão mais recente e garantir que você esteja sempre com as versões mais recentes. Se necessário, faça upgrade para a versão mais recente. - Salve o
Podfile
. Abra um terminal e acesse o diretório que contém o
Podfile
:cd <path-to-project>
Execute o comando
pod install
. Isso instalará as APIs especificadas noPodfile
e as respectivas dependências.pod install
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:
- Abra um terminal e acesse o diretório do projeto que contém o
Podfile
. - Execute o comando
pod update
. Isso vai atualizar todas as APIs especificadas noPodfile
para a versão mais recente.
Instalar o XCFramework
Um XCFramework é um pacote binário que pode ser usado em várias plataformas, incluindo máquinas que usam o chipset M1, para instalar o SDK do Maps para iOS. Neste guia, mostramos como adicionar o XCFramework que contém o SDK do Maps para iOS ao seu projeto e definir as configurações do build no Xcode.
Instalar manualmente
Neste guia, mostramos como adicionar manualmente o SDK do Maps para iOS ao seu projeto e definir as configurações do build no Xcode.
- Faça o download dos arquivos de origem do SDK: GoogleMaps-8.2.0.
- Descompacte-os. Navegue até a pasta Frameworks para acessar o XCFramework.
- Se você ainda não tiver um projeto Xcode, crie um agora e salve-o na sua máquina local. Se você não tem experiência com o desenvolvimento para iOS:
- Crie um novo projeto.
- Selecione o modelo iOS > App.
- Na tela de opções do projeto, faça o seguinte:
- Digite o Nome do projeto.
- Registre o valor do campo Identificador do pacote. Use esse valor para restringir sua chave de API abaixo.
- Defina a Interface do projeto como Storyboard.
- Defina Language como Swift ou Objective-C.
- Arraste os seguintes XCFrameworks para o projeto em
Frameworks, bibliotecas e conteúdo incorporado. Selecione
Do Not Embed para cada XCFramework:
GoogleMaps-x.x.x/GoogleMapsBase.xcframework
GoogleMaps-x.x.x/GoogleMaps.xcframework
GoogleMaps-x.x.x/GoogleMapsCore.xcframework
- (Somente para clientes do Plano Premium)
GoogleMaps-x.x.x/GoogleMapsM4B.xcframework
- Clique com o botão direito do mouse em
GoogleMaps.xcframework
no projeto e selecione Show In Finder. - Arraste
GoogleMaps.bundle
da pastaios-arm64_x86_64-simulator/GoogleMaps.framework/Resources
para o diretório de nível superior do seu projeto do Xcode. Quando solicitado, verifique se a opção Copiar itens se necessário não está selecionada. - Selecione o projeto no Project Navigator e escolha o destino do aplicativo.
- Abra a guia Build Phases para o destino do aplicativo
e em Vincular binário a bibliotecas e adicione os seguintes
frameworks e bibliotecas:
Accelerate.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
Escolha o projeto, em vez de um destino específico, e abra a guia Build Settings. Na seção Outras sinalizações do vinculador, adicione
-ObjC
. Se essas configurações não estiverem visíveis, mude o filtro na barra Build Settings de Basic para All.Para instalar o SDK do Places para iOS, consulte Começar a usar o SDK do Places para iOS.
Com Cartago
Instalar manualmente
Neste guia, mostramos como adicionar manualmente o SDK do Maps para iOS ao seu projeto e definir as configurações do build no Xcode.
- Faça o download dos arquivos de origem do SDK: GoogleMaps-8.2.0.
- Descompacte-os.
- Se você ainda não tiver um projeto Xcode, crie um agora e salve-o na sua máquina local. Se você não tem experiência com o desenvolvimento para iOS:
- Crie um novo projeto.
- Selecione o modelo iOS > App.
- Na tela de opções do projeto, faça o seguinte:
- Digite o Nome do projeto.
- Registre o valor do campo Identificador do pacote. Use esse valor para restringir sua chave de API abaixo.
- Defina a Interface do projeto como Storyboard.
- Defina Language como Swift ou Objective-C.
- Arraste os seguintes pacotes para o projeto (quando solicitado, selecione Copy items if needed, use the same version as above.)
GoogleMaps-x.x.x/Base/Frameworks/GoogleMapsBase.xcframework
GoogleMaps-x.x.x/Maps/Frameworks/GoogleMaps.xcframework
GoogleMaps-x.x.x/Maps/Frameworks/GoogleMapsCore.xcframework
- (Somente para clientes do Plano Premium)
GoogleMaps-x.x.x/M4B/Frameworks/GoogleMapsM4B.xcframework
- Clique com o botão direito do mouse em
GoogleMaps.xcframework
no projeto e selecione Show In Finder. - Arraste
GoogleMaps.bundle
da pastaResources
para o diretório de nível superior do seu projeto Xcode. Quando solicitado, verifique se a opção Copiar itens na pasta do grupo de destino não está selecionada. - Selecione o projeto no Project Navigator e escolha o local de destino do aplicativo.
- Abra a guia Build Phases para o destino do aplicativo e, em Link Binary with
Libraries, adicione os seguintes frameworks e bibliotecas:
Accelerate.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
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.Para instalar o SDK do Places para iOS, consulte Primeiros passos com 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 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:
- Adicione a seguinte instrução de importação:
import GoogleMaps
- Adicione o seguinte ao método
application(_:didFinishLaunchingWithOptions:)
usando sua chave de API:GMSServices.provideAPIKey("YOUR_API_KEY")
- 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:
- Adicione a seguinte instrução de importação:
@import GoogleMaps;
- Adicione o seguinte ao método
application:didFinishLaunchingWithOptions:
usando sua chave de API:[GMSServices provideAPIKey:@"YOUR_API_KEY"];
- Se você também estiver usando a API Places, adicione a chave novamente conforme mostrado aqui:
[GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];
Etapa 4 (opcional): ativar o uso do framework de renderização Metal
Com o SDK do Maps para iOS, é possível ativar o uso do framework de renderização Metal da
Apple. Para testar o renderizador Metal no seu app, chame [GMSServices
setMetalRendererEnabled:YES]
em Objective-C ou
GMSServices.setMetalRendererEnabled(true)
no Swift antes de criar visualizações de
mapa.
Se você está
instalando o SDK manualmente,
também é preciso adicionar o Metal.framework
no Xcode.
Etapa 5: adicionar um mapa
O código abaixo demonstra como adicionar um mapa simples a um ViewController
já existente:
Adicione ou atualize métodos no
ViewController
padrão do app para criar e inicializar uma instância deGMSMapView
.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. Será mostrado um mapa com um único marcador centralizado em Sydney, Austrália. Se o marcador for exibido, mas o mapa não, confirme se você forneceu sua chave de API.
Etapa 6 (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. Para isso, basta especificar os esquemas 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. 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
:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>googlechromes</string>
<string>comgooglemaps</string>
</array>
A captura de tela abaixo mostra a configuração na interface do usuário do Xcode:
Sem a declaração acima, os seguintes erros 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: "This app is not allowed to query for scheme googlechromes"
Para eliminar esses erros, adicione a declaração ao Info.plist
, conforme descrito acima.
A seguir
Agora que você tem uma chave de API e um projeto Xcode, pode criar e executar apps. O SDK do Maps para iOS apresenta vários tutoriais e apps de exemplo que podem ajudar você a começar. Confira mais detalhes em: