Depois de ativar o faturamento e criar uma chave de API, configure 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 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 pelo Gerenciador de pacotes do Swift. Para adicionar o SDK, remova todas as dependências atuais do SDK do Maps para iOS.
Para adicionar o SDK a um projeto novo ou existente, siga estas etapas:
-
Abra o Xcode
project
ouworkspace
e acesse File > Add Package Dependencies. - Digite https://github.com/googlemaps/ios-maps-sdk como o URL, pressione Enter para extrair o pacote e clique em "Adicionar pacote".
-
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". -
Na janela Choose Package Products, verifique se
GoogleMaps
(para versões anteriores à 9.0.0, verifique seGoogleMaps
,GoogleMapsBase
eGoogleMapsCore
) será adicionado ao seu destinomain
designado. Quando terminar, clique em "Adicionar pacote". -
Para verificar sua instalação, navegue até o painel
General
do destino. Em Frameworks, bibliotecas e conteúdo incorporado, você verá os pacotes instalados. Você também pode ver a seção "Package Dependencies" do "Project Navigator" para verificar o pacote e a versão dele.
Para atualizar o package
de um projeto existente, siga estas etapas:
Se você estiver fazendo upgrade de uma versão anterior à 9.0.0, remova as seguintes dependências:
GoogleMapsBase
,GoogleMapsCore
eGoogleMapsM4B
após o upgrade. Não remova a dependência deGoogleMaps
. Para mais informações, consulte as Notas de lançamento da versão 9.0.0.Nas configurações do 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)
- No Xcode, acesse "File > Packages > Update To latest Package Versions".
- Para verificar sua instalação, vá para a seção Package Dependencies do Project Navigator para conferir 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:
- 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
-
Remova
Podfile
,Podfile.resolved
eworkspace
do Xcode se não os usar para algo diferente do CocoaPods.
-
Nas configurações do 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 anteriores à versão 9.0.0)GoogleMapsCore
(apenas para instalações anteriores à versão 9.0.0)GoogleMapsM4B
(apenas para instalações anteriores à versão 9.0.0)
-
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:
- Se você ainda não tiver um projeto Xcode, crie um agora e salve-o na
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 a linguagem 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 versions delas. Veja um exemplo que inclui a dependência necessária do 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
Executepod outdated
regularmente para detectar quando há uma versão mais recente e garantir que você sempre tenha a versão mais recente. 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 atual, siga estas etapas:
- Abra um terminal e acesse o diretório do projeto que contém o
Podfile
. - Execute o comando
pod update
. Isso atualizará todas as APIs especificadas emPodfile
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.- Faça o download dos seguintes arquivos binários e de recursos do SDK:
- GoogleMaps
- GoogleMapsBase
- GoogleMapsCore
- GoogleMapsM4B (link em inglês)
- GoogleMapsResources
- Extraia os arquivos para acessar os XCFrameworks e os recursos.
- Se você ainda não tiver um projeto Xcode, crie um agora e salve-o na
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 a linguagem como Swift ou Objective-C.
-
Abra a guia Geral. Arraste os XCFrameworks a seguir para seu projeto em Frameworks, bibliotecas e conteúdo incorporado. Selecione
Do Not Embed para cada XCFramework:
GoogleMaps.xcframework
GoogleMapsBase.xcframework
GoogleMapsCore.xcframework
-
Copie o
GoogleMaps.bundle
do GoogleMapsResources que você transferiu por download para o diretório de nível superior do seu projeto Xcode. Selecione Copy items into destination group's folder quando solicitado. - Selecione o projeto no Project Navigator e escolha o destino do aplicativo.
-
Abra a guia Fases de compilação do 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
(somente se você estiver usando o OpenGL)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 Vinculação - Geral -> Outras sinalizações do vinculador, adicione
-ObjC
a "Depurar" e "Liberar". Se essas configurações não estiverem visíveis, altere o filtro na barra Build Settings de Basic para All. -
Para instalar o XCFramework do SDK do Places para iOS, consulte Começar a usar 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, 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.
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 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
No iOS 9 e 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, e 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 seu Info.plist
:
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: "Este app não tem permissão para consultar o esquema 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
.
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 apps de exemplo para ajudar você a começar. Confira mais detalhes em: