Siga as etapas deste guia para fazer o download do SDK do Places para iOS, adicionar a biblioteca e as dependências ao app e receber uma chave de API sem custos financeiros.
As Notas de lançamento estão disponíveis para cada versão.
Etapa 1: obter a versão mais recente do Xcode
Para criar um projeto usando o SDK do Places para iOS, você precisa de:
Etapa 2: instalar o SDK
Para instalar a API em um novo projeto, siga estas etapas:Usar CocoaPods
O SDK do Places para iOS está disponível como um pod do CocoaPod, GooglePlaces, que contém todas as funcionalidades de lugares.
O CocoaPods é um gerenciador de dependências de código aberto para projetos Cocoa em Swift e Objective-C. Se você ainda não tiver a ferramenta CocoaPods, instale-a no macOS executando o seguinte comando no terminal. Para mais detalhes, consulte o Guia de primeiros passos do CocoaPods.
sudo gem install cocoapods
Crie um Podfile
para o SDK do Places para iOS e use-o para instalar o SDK e as dependências dele:
- Se você ainda não tiver um projeto Xcode, crie um agora e salve-o no computador local. Se você é novo no desenvolvimento para iOS, crie um novo projeto e selecione o modelo de app para iOS.
- Crie um arquivo chamado
Podfile
no seu diretório do projeto para definir as dependências. - Edite a
Podfile
e adicione as dependências com as versões delas. Veja um exemplo que especifica o nome de destino do aplicativo e o nome do podGooglePlaces
:source 'https://github.com/CocoaPods/Specs.git' platform :ios, '14.0' target 'YOUR_APPLICATION_TARGET_NAME_HERE' do pod 'GooglePlaces', '8.0.0' end
Executepod outdated
regularmente para detectar quando houver uma versão mais recente e garantir que você tenha sempre a 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 atualizará todas as APIs especificadas noPodfile
para a versão mais recente.
Usar Cartago
O SDK do Places para iOS está disponível para uso com o Carthage, um gerenciador de dependências simples e descentralizado para projetos Cocoa em Swift e Objective-C.
- Instale o Carthage. Existem vários métodos. Portanto, consulte o arquivo README do Carthage (em inglês) para ver as etapas exatas.
- Se você ainda não tiver um projeto Xcode, crie um agora e salve-o no computador local. Se você é novo no desenvolvimento para iOS, crie um novo projeto e selecione o modelo de app para iOS.
- Crie um arquivo chamado
Cartfile
no seu diretório do projeto Esse arquivo define as dependências do projeto. - Edite o
Cartfile
e adicione as dependências com as respectivas versões:
binary "https://dl.google.com/geosdk/GooglePlaces.json" == 6.2.1
Execute ocarthage outdated
regularmente para detectar quando houver uma versão mais recente e garantir que você esteja sempre com a mais recente. - Salve o
Cartfile
. - Em uma janela de terminal, acesse o diretório que contém
Cartfile
:
cd <path-to-project>
- Execute o comando
carthage update
. Isso instalará as APIs especificadas noCartfile
e as respectivas dependências. - No Finder, no diretório do projeto, acesse os arquivos do framework salvos em
Carthage/Build/iOS
. - Arraste os seguintes pacotes para o projeto. Quando solicitado, selecione Copiar itens, se necessário:
GooglePlaces-x.x.x/Frameworks/GooglePlaces.xcframework
- Clique com o botão direito do mouse em
GooglePlaces.xcframework
no projeto e selecione Show In Finder. - Arraste
GooglePlaces.bundle
da pastaResources
para o projeto. Quando solicitado, verifique se Copy items into destination group's folder não está selecionado. - Selecione o projeto no Project Navigator e escolha o local de destino do aplicativo.
- Abra a guia Fases de compilação e, em Vincular binário às bibliotecas, adicione os seguintes frameworks e bibliotecas:
CoreGraphics.framework
CoreLocation.framework
libc++.tbd
libz.tbd
QuartzCore.framework
UIKit.framework
Escolha seu 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, altere o filtro na barra Build Settings de Basic para All.
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
Cartfile
. - Execute o comando
carthage update
. Isso atualizará todas as APIs especificadas noCartfile
para a versão mais recente.
Instalar manualmente
Este guia mostra como adicionar manualmente a biblioteca GooglePlaces ao projeto e definir as configurações de compilação no Xcode.
- Faça o download dos arquivos de origem do SDK: GooglePlaces-8.0.0
- Descompacte-os.
- Inicialize o Xcode e abra ou crie um projeto. Se você é novo no desenvolvimento para iOS, crie um novo projeto e selecione o iOS App template.
- Remova todas as versões anteriores do Maps do projeto.
- Arraste os seguintes pacotes para o projeto. Quando solicitado, selecione Copiar itens, se necessário:
GooglePlaces-x.x.x/Frameworks/GooglePlaces.xcframework
- Clique com o botão direito do mouse em
GooglePlaces.xcframework
no projeto e selecione Show In Finder. - Arraste
GooglePlaces.bundle
da pastaResources
para o projeto. Quando solicitado, verifique se Copy items into destination group's folder não está selecionado. - Selecione o projeto no Project Navigator e escolha o local de destino do aplicativo.
- Abra a guia Fases de compilação e, em Vincular binário às bibliotecas, adicione os seguintes frameworks e bibliotecas:
CoreGraphics.framework
CoreLocation.framework
libc++.tbd
libz.tbd
QuartzCore.framework
UIKit.framework
Escolha seu 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, altere o filtro na barra Build Settings de Basic para All.
Instalar o XCFramework
Um XCFramework é um pacote binário que pode ser usado em várias plataformas, incluindo máquinas usando o chipset M1, para instalar o SDK do Places para iOS. Este guia mostra como adicionar o XCFramework que contém o SDK do Places para iOS ao projeto e definir as configurações de compilação no Xcode.
Com Cartago
O SDK do Places para iOS está disponível para uso com o Carthage, um gerenciador de dependências simples e descentralizado para projetos Cocoa em Swift e Objective-C.
- Instale o Carthage. Existem vários métodos. Portanto, consulte o arquivo README do Carthage (em inglês) para ver as etapas exatas.
- Se você ainda não tiver um projeto Xcode, crie um agora e salve-o na sua máquina local. Se você é novo no desenvolvimento para iOS, crie um novo projeto e selecione o modelo de app para iOS.
- Crie um arquivo chamado
Cartfile
no seu diretório do projeto Esse arquivo define as dependências do projeto. Edite o
Cartfile
e adicione as dependências com as versões:binary "https://dl.google.com/geosdk/GooglePlaces.json" == 6.2.1-beta
- Salve o
Cartfile
. Em uma janela de terminal, acesse o diretório que contém
Cartfile
:cd <path-to-project>
- Execute o comando
carthage update
. Isso instalará as APIs especificadas noCartfile
e as respectivas dependências. - No Finder, no diretório do projeto, acesse os arquivos de framework baixados em
Carthage/Build
. - Arraste o seguinte XCFramework para o projeto em Frameworks, Bibliotecas e Conteúdo incorporado. Selecione
Não incorporar:
GooglePlaces-x.x.x/GooglePlaces.xcframework
- Clique com o botão direito do mouse em
GooglePlaces.xcframework
no seu projeto e selecione Show In Finder. - Arraste
GooglePlaces.bundle
da pastaios-arm64/GooglePlaces.framework/Resources
para o diretório de nível superior do seu projeto Xcode. Quando solicitado, certifique-se de que a opção Copiar itens na pasta do grupo de destino não esteja selecionada. - Selecione seu projeto no Project Navigator e escolha o destino do aplicativo.
- Abra a guia Fases de compilação e, em Vincular binário às bibliotecas, e adicione os seguintes frameworks e bibliotecas:
CoreGraphics.framework
CoreLocation.framework
libc++.tbd
libz.tbd
QuartzCore.framework
UIKit.framework
Escolha seu 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, altere o filtro na barra Build Settings de Basic para All.
Manualmente
Este guia mostra como adicionar manualmente o SDK do Maps para iOS ao projeto e definir as configurações de compilação no Xcode.
- Faça o download dos arquivos de origem do SDK: GooglePlaces-8.0.0.
- Descompacte-os. Navegue até a pasta Frameworks para acessar o XCFramework.
- Inicie o Xcode e abra um projeto existente ou crie um novo. Se você é novo no iOS, crie um novo projeto e selecione o iOS App template.
- Arraste o seguinte XCFramework para o projeto em Frameworks, Bibliotecas e Conteúdo incorporado. Selecione
Não incorporar:
GooglePlaces-x.x.x/GooglePlaces.xcframework
- Clique com o botão direito do mouse em
GooglePlaces.xcframework
no seu projeto e selecione Show In Finder. - Arraste
GooglePlaces.bundle
da pastaios-arm64/GooglePlaces.framework/Resources
para o diretório de nível superior do seu projeto Xcode. Quando solicitado, certifique-se de que a opção Copiar itens na pasta do grupo de destino não esteja selecionada. - Selecione seu projeto no Project Navigator e escolha o destino do aplicativo.
- Abra a guia Fases de compilação e, em Vincular binário às bibliotecas, e adicione os seguintes frameworks e bibliotecas:
CoreGraphics.framework
CoreLocation.framework
libc++.tbd
libz.tbd
QuartzCore.framework
UIKit.framework
Escolha seu 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, altere o filtro na barra Build Settings de Basic para All.
Etapa 3: adicionar a chave de API ao app
Nos exemplos a seguir, substitua YOUR_API_KEY
pela sua chave de API.
Swift
Inclua sua chave de API ao AppDelegate.swift
da seguinte maneira:
- Adicione a seguinte instrução de importação:
import GooglePlaces
- Adicione o seguinte ao método
application(_:didFinishLaunchingWithOptions:)
, substituindo YOUR_API_KEY pela chave de API: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 GooglePlaces;
- Adicione o seguinte ao método
application:didFinishLaunchingWithOptions:
, substituindo YOUR_API_KEY pela chave de API:[GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];
Etapa 4: começar a escrever o código
Os exemplos de código a seguir demonstram como acessar o lugar atual.
Swift
import GooglePlaces import UIKit class GetStartedViewController : UIViewController { // Add a pair of UILabels in Interface Builder, and connect the outlets to these variables. @IBOutlet private var nameLabel: UILabel! @IBOutlet private var addressLabel: UILabel! private var placesClient: GMSPlacesClient! override func viewDidLoad() { super.viewDidLoad() placesClient = GMSPlacesClient.shared() } // Add a UIButton in Interface Builder, and connect the action to this function. @IBAction func getCurrentPlace(_ sender: UIButton) { let placeFields: GMSPlaceField = [.name, .formattedAddress] placesClient.findPlaceLikelihoodsFromCurrentLocation(withPlaceFields: placeFields) { [weak self] (placeLikelihoods, error) in guard let strongSelf = self else { return } guard error == nil else { print("Current place error: \(error?.localizedDescription ?? "")") return } guard let place = placeLikelihoods?.first?.place else { strongSelf.nameLabel.text = "No current place" strongSelf.addressLabel.text = "" return } strongSelf.nameLabel.text = place.name strongSelf.addressLabel.text = place.formattedAddress } } }
Objective-C
#import "GetStartedViewController.h" @import GooglePlaces; @interface GetStartedViewController () // Add a pair of UILabels in Interface Builder and connect the outlets to these variables @property (weak, nonatomic) IBOutlet UILabel *nameLabel; @property (weak, nonatomic) IBOutlet UILabel *addressLabel; @end @implementation GetStartedViewController { GMSPlacesClient *_placesClient; } - (void)viewDidLoad { [super viewDidLoad]; _placesClient = [GMSPlacesClient sharedClient]; } // Add a pair of UILabels in Interface Builder and connect the outlets to these variables. - (IBAction)getCurrentPlace:(UIButton *)sender { GMSPlaceField placeFields = (GMSPlaceFieldName | GMSPlaceFieldFormattedAddress); __weak typeof(self) weakSelf = self; [_placesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:placeFields callback:^(NSArray<GMSPlaceLikelihood *> * _Nullable likelihoods, NSError * _Nullable error) { __typeof__(self) strongSelf = weakSelf; if (strongSelf == nil) { return; } if (error != nil) { NSLog(@"An error occurred %@", [error localizedDescription]); return; } GMSPlace *place = likelihoods.firstObject.place; if (place == nil) { strongSelf.nameLabel.text = @"No current place"; strongSelf.addressLabel.text = @""; return; } strongSelf.nameLabel.text = place.name; strongSelf.addressLabel.text = place.formattedAddress; }]; } @end
Próximas etapas
Depois de configurar o projeto, é possível explorar os apps de amostra. Você precisará do Cocoapods v1.6.1 instalado.