Po włączeniu płatności i utworzeniu klucza interfejsu API możesz skonfigurować projekt Xcode, którego używasz do tworzenia aplikacji.
Informacje o poszczególnych wersjach są dostępne w informacjach o wersji.
Krok 1. Zainstaluj wymagane oprogramowanie
Aby utworzyć projekt za pomocą pakietu Places SDK dla iOS, potrzebujesz:
- Xcode w wersji 14.0 lub nowszej.
- CocoaPods
- Jeśli nie masz jeszcze projektu Xcode, utwórz go i zapisz na komputerze lokalnym. Jeśli dopiero zaczynasz programowanie na iOS, utwórz nowy projekt i wybierz Szablon aplikacji na iOS.
- Utwórz w katalogu projektu plik o nazwie
Podfile
. Ten plik określa zależności projektu. - Edytuj
Podfile
i dodaj zależności wraz z ich versions. Oto przykład, który określa nazwę miejsca docelowego aplikacji i nazwę podaGooglePlaces
:source 'https://github.com/CocoaPods/Specs.git' platform :ios, '14.0' target 'YOUR_APPLICATION_TARGET_NAME_HERE' do pod 'GooglePlaces', '8.3.0' end
Pamiętaj, aby regularnie uruchamiaćpod outdated
, aby wykrywać, kiedy dostępna jest nowsza wersja. Dzięki temu masz zawsze dostęp do najnowszej wersji. - Zapisz
Podfile
. Otwórz terminal i przejdź do katalogu zawierającego
Podfile
:cd <path-to-project>
Uruchom polecenie
pod install
. Spowoduje to zainstalowanie interfejsów API określonych w obiekciePodfile
wraz ze wszystkimi zależnościami, jakie mogą mieć.pod install
Zamknij Xcode, a następnie otwórz (dwukrotnie kliknij) plik
.xcworkspace
swojego projektu, aby uruchomić Xcode. Od tej pory projekt można otwierać tylko za pomocą pliku.xcworkspace
.- Otwórz terminal i przejdź do katalogu projektu zawierającego
Podfile
. - Uruchom polecenie
pod update
. Spowoduje to zaktualizowanie do najnowszej wersji wszystkich interfejsów API określonych w:Podfile
. - Pobierz te pliki binarne i zasoby SDK:
- Rozpakuj skompresowane pliki, aby uzyskać dostęp do XCFramework i zasobów.
- Uruchom Xcode i otwórz istniejący projekt lub utwórz nowy. Jeśli dopiero zaczynasz programowanie na iOS, utwórz nowy projekt i wybierz Szablon aplikacji na iOS.
- Usuń z projektu wszystkie pakiety Map z poprzednich wersji.
- Przeciągnij ten element XCFramework do projektu do sekcji Frameworks, Libraries and Embedded Content. Wybierz Nie umieszczaj:
GooglePlaces.xcframework
- Przeciągnij plik
GooglePlaces.bundle
z pobranego GooglePlacesResources do katalogu najwyższego poziomu projektu Xcode. Gdy pojawi się prośba, sprawdź, czy wybrana jest opcja Kopiuj elementy do folderu grupy docelowej. - Wybierz projekt z Nawigatora projektów i wskaż miejsce docelowe aplikacji.
- Otwórz kartę Etapy kompilacji, a potem w sekcji Połącz plik binarny z bibliotekami dodaj te platformy i biblioteki:
CoreGraphics.framework
CoreLocation.framework
libc++.tbd
libz.tbd
QuartzCore.framework
UIKit.framework
Wybierz projekt, a nie konkretny cel, i otwórz kartę Ustawienia kompilacji.
- W sekcji Inne oznaczenia łączące dodaj
-ObjC
. Jeśli te ustawienia nie są widoczne, zmień filtr na pasku Ustawienia kompilacji z Podstawowe na Wszystkie. - Dodaj tę instrukcję importu:
import GooglePlaces
- Dodaj do metody
application(_:didFinishLaunchingWithOptions:)
ten kod, zastępując fragment YOUR_API_KEY kluczem interfejsu API:GMSPlacesClient.provideAPIKey("YOUR_API_KEY")
- Dodaj tę instrukcję importu:
@import GooglePlaces;
- Dodaj do metody
application:didFinishLaunchingWithOptions:
ten kod, zastępując fragment YOUR_API_KEY kluczem interfejsu API:[GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];
Krok 2: Utwórz projekt Xcode i zainstaluj pakiet Places SDK dla iOS
Aby zainstalować interfejs API w nowym projekcie, wykonaj te czynności:Używanie Cocoapods
Pakiet Miejsca SDK na iOS jest dostępny jako blok CocoaPod (GooglePlaces), który zawiera wszystkie funkcje miejsc.
CocoaPods to menedżer zależności open source w projektach Swift i Objective-C Cocoa. Jeśli nie masz jeszcze narzędzia CocoaPods, zainstaluj je w systemie macOS, uruchamiając z terminala poniższe polecenie. Szczegółowe informacje znajdziesz w przewodniku dla początkujących.
sudo gem install cocoapods
Utwórz obiekt Podfile
dla pakietu Places SDK dla iOS i użyj go do zainstalowania tego pakietu SDK oraz jego zależności:
Aby zaktualizować interfejs API w istniejącym projekcie, wykonaj te czynności:
Instalowanie ręczne
Ten przewodnik pokazuje, jak ręcznie dodać do projektu komponent XCFramework zawierający pakiet Places SDK dla iOS i skonfigurować ustawienia kompilacji w Xcode. XCFramework to pakiet binarny, którego można używać na wielu platformach, w tym na maszynach korzystających z Apple Silicon.
Krok 3. Dodaj do aplikacji klucz interfejsu API
W poniższych przykładach zastąp YOUR_API_KEY
kluczem interfejsu API.
Swift
Dodaj klucz interfejsu API do AppDelegate.swift
w ten sposób:
Objective-C
Dodaj klucz interfejsu API do AppDelegate.m
w ten sposób:
Krok 4. Zacznij pisać kod
Poniższe przykłady kodu pokazują, jak pobrać dane miejsce.
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
Dalsze kroki
Po skonfigurowaniu projektu możesz zapoznać się z przykładowymi aplikacjami. Musisz zainstalować Cocoapods w wersji 1.6.1.