Aby pobrać bibliotekę Places SDK i jej zależności, a także bezpłatnie pobrać klucz interfejsu API, wykonaj czynności opisane w tym przewodniku.
Dla każdej wersji są dostępne Informacje o wersji.
Krok 1. Pobierz najnowszą wersję Xcode
Aby utworzyć projekt przy użyciu pakietu SDK Miejsc na iOS, musisz:
Krok 2. Zainstaluj pakiet SDK
Aby zainstalować interfejs API w nowym projekcie, wykonaj te czynności:Używaj Cocoapods
Pakiet SDK Miejsc na iOS jest dostępny jako CocoaPod poda GooglePlaces, który zawiera wszystkie funkcje Miejsc.
CocoaPods to menedżer zależności open source dla projektów Swift i Goal-C Cocoa. Jeżeli nie masz jeszcze narzędzia CocoaPods, zainstaluj je w systemie macOS, uruchamiając w terminalu to polecenie. Szczegółowe informacje znajdziesz w przewodniku dla początkujących na temat CocoaPods.
sudo gem install cocoapods
Utwórz pakiet Podfile
dotyczący pakietu SDK Miejsc na iOS i użyj go do zainstalowania pakietu SDK i jego zależności:
- Jeśli nie masz jeszcze projektu Xcode, utwórz go i zapisz na komputerze lokalnym. Jeśli dopiero zaczynasz programowanie na urządzeniu z iOS, utwórz nowy projekt i wybierz szablon aplikacji na iOS.
- Utwórz w katalogu projektu plik o nazwie
Podfile
. Ten plik definiuje zależności projektu. - Edytuj
Podfile
i dodaj zależności wraz z ich wersjami. Oto przykład, który określa nazwę celu aplikacji, i nazwę podaGooglePlaces
:source 'https://github.com/CocoaPods/Specs.git' platform :ios, '13.0' target 'YOUR_APPLICATION_TARGET_NAME_HERE' do pod 'GooglePlaces', '7.4.0' end
Pamiętaj o regularnym uruchomieniupod outdated
, aby wykryć, że dostępna jest nowsza wersja, aby zawsze mieć 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 zasadziePodfile
oraz wszystkich ich zależności.pod install
Zamknij Xcode, a następnie kliknij (dwukrotnie) plik
.xcworkspace
projektu, aby uruchomić Xcode. Od tej pory do otwierania projektu musisz używać pliku.xcworkspace
.
Aby zaktualizować interfejs API w istniejącym projekcie, wykonaj te czynności:
- Otwórz terminal i przejdź do katalogu projektu zawierającego
Podfile
. - Uruchom polecenie
pod update
. Spowoduje to zaktualizowanie wszystkich interfejsów API określonych wPodfile
do najnowszej wersji.
Użyj karty pamięci
Pakiet SDK Miejsc na iOS jest dostępny w Carthage – prostym, zdecentralizowanym menedżerze zależności dla projektów korzystających ze Swift i celu C.
- Zainstaluj kartę Karta. Istnieje kilka metod, więc dokładne instrukcje znajdziesz w pliku Carthage README.
- Jeśli nie masz jeszcze projektu Xcode, utwórz go i zapisz na komputerze lokalnym. Jeśli dopiero zaczynasz programowanie na urządzeniu z iOS, utwórz nowy projekt i wybierz szablon aplikacji na iOS.
- Utwórz w katalogu projektu plik o nazwie
Cartfile
. Ten plik definiuje zależności projektu. - Edytuj
Cartfile
i dodaj zależności wraz z ich wersjami:
binary "https://dl.google.com/geosdk/GooglePlaces.json" == 6.2.1
Pamiętaj o regularnym uruchamianiucarthage outdated
, aby wykryć, że dostępna jest nowsza wersja, aby zawsze mieć dostęp do najnowszej wersji. - Zapisz
Cartfile
. - W oknie terminala przejdź do katalogu zawierającego
Cartfile
:
cd <path-to-project>
- Uruchom polecenie
carthage update
. Spowoduje to zainstalowanie interfejsów API określonych w zasadzieCartfile
oraz wszystkich ich zależności. - W programie Finder w katalogu projektów przejdź do pobranych plików platformy w sekcji
Carthage/Build/iOS
. - Przeciągnij te grupy do projektu (jeśli pojawi się taka prośba, wybierz Kopiuj elementy w razie potrzeby):
GooglePlaces-x.x.x/Frameworks/GooglePlaces.xcframework
- Kliknij prawym przyciskiem myszy
GooglePlaces.xcframework
w projekcie i wybierz Pokaż w Finderze. - Przeciągnij
GooglePlaces.bundle
z folderuResources
do projektu. Po wyświetleniu prośby upewnij się, że opcja Kopiuj elementy do folderu grupy docelowej nie jest zaznaczona. - Wybierz projekt z Nawigatora projektów i wybierz środowisko docelowe swojej aplikacji.
- Otwórz kartę Etapy kompilacji i 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 zamiast konkretnego celu i otwórz kartę Ustawienia kompilacji.
- W sekcji Inne flagi łączące dodaj
-ObjC
. Jeśli nie widzisz tych ustawień, zmień filtr na pasku Ustawienia kompilacji z Podstawowe na Wszystkie.
Aby zaktualizować interfejs API w istniejącym projekcie, wykonaj te czynności:
- Otwórz terminal i przejdź do katalogu projektu zawierającego
Cartfile
. - Uruchom polecenie
carthage update
. Spowoduje to zaktualizowanie wszystkich interfejsów API określonych wCartfile
do najnowszej wersji.
Zainstaluj ręcznie
Z tego przewodnika dowiesz się, jak ręcznie dodać platformę GooglePlaces do projektu i skonfigurować ustawienia kompilacji w Xcode.
- Pobierz pliki źródłowe pakietu SDK: GooglePlaces-7.4.0
- Rozpakuj pliki źródłowe.
- Uruchom Xcode i otwórz istniejący projekt lub utwórz nowy. Jeśli dopiero zaczynasz programowanie w iOS, utwórz nowy projekt i wybierz szablon aplikacji na iOS.
- Usuń z projektu pakiety Map z poprzednich wersji.
- Przeciągnij te grupy do projektu (jeśli pojawi się taka prośba, wybierz Kopiuj elementy w razie potrzeby):
GooglePlaces-x.x.x/Frameworks/GooglePlaces.xcframework
- Kliknij prawym przyciskiem myszy
GooglePlaces.xcframework
w projekcie i wybierz Pokaż w Finderze. - Przeciągnij
GooglePlaces.bundle
z folderuResources
do projektu. Po wyświetleniu prośby upewnij się, że opcja Kopiuj elementy do folderu grupy docelowej nie jest zaznaczona. - Wybierz projekt z Nawigatora projektów i wybierz środowisko docelowe swojej aplikacji.
- Otwórz kartę Etapy kompilacji i 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 zamiast konkretnego celu i otwórz kartę Ustawienia kompilacji.
- W sekcji Inne flagi łączące dodaj
-ObjC
. Jeśli nie widzisz tych ustawień, zmień filtr na pasku Ustawienia kompilacji z Podstawowe na Wszystkie.
Zainstaluj XCFramework
XCFramework to pakiet binarny, którego można używać na wielu platformach, w tym na urządzeniach z chipsetem M1, do instalowania pakietu SDK Miejsc na iOS. Z tego przewodnika dowiesz się, jak dodać do projektu XCFramework zawierające pakiet SDK Miejsc na iOS oraz skonfigurować ustawienia kompilacji w Xcode.
Z kartką
Pakiet SDK Miejsc na iOS jest dostępny w Carthage – prostym, zdecentralizowanym menedżerze zależności dla projektów Cowa i Swift.
- Zainstaluj kartę Karta. Istnieje kilka metod, więc dokładne instrukcje znajdziesz w pliku Carthage README.
- Jeśli nie masz jeszcze projektu Xcode, utwórz go i zapisz na komputerze lokalnym. Jeśli dopiero zaczynasz programowanie na urządzeniu z iOS, utwórz nowy projekt i wybierz szablon aplikacji na iOS.
- Utwórz w katalogu projektu plik o nazwie
Cartfile
. Ten plik definiuje zależności projektu. Edytuj obiekt
Cartfile
i dodaj do niego zależności oraz ich wersje:binary "https://dl.google.com/geosdk/GooglePlaces.json" == 6.2.1-beta
- Zapisz
Cartfile
. W oknie terminala przejdź do katalogu zawierającego
Cartfile
:cd <path-to-project>
- Uruchom polecenie
carthage update
. Spowoduje to zainstalowanie interfejsów API określonych w zasadzieCartfile
oraz wszystkich ich zależności. - W programie Finder w katalogu projektu przejdź do pobranych plików platformy w sekcji
Carthage/Build
. - Przeciągnij następujące projekty XCFramework do swojego projektu w sekcji Frameworks, Librarys and Connected Content. Pamiętaj, aby wybrać opcję Nie umieszczaj:
GooglePlaces-x.x.x/GooglePlaces.xcframework
- Kliknij prawym przyciskiem myszy
GooglePlaces.xcframework
w projekcie i wybierz Pokaż w Finderze. - Przeciągnij
GooglePlaces.bundle
z folderuios-arm64/GooglePlaces.framework/Resources
do katalogu najwyższego poziomu w projekcie Xcode. Gdy pojawi się komunikat, nie wybieraj opcji Kopiuj elementy do folderu grupy docelowej. - Wybierz projekt z Nawigatora projektów i wybierz środowisko docelowe swojej aplikacji.
- Otwórz kartę Etapy kompilacji oraz w sekcji Połącz plik binarny z bibliotekami, a potem dodaj te platformy i biblioteki:
CoreGraphics.framework
CoreLocation.framework
libc++.tbd
libz.tbd
QuartzCore.framework
UIKit.framework
Wybierz projekt zamiast konkretnego celu i otwórz kartę Ustawienia kompilacji.
- W sekcji Inne flagi łączące dodaj
-ObjC
. Jeśli nie widzisz tych ustawień, zmień filtr na pasku Ustawienia kompilacji z Podstawowe na Wszystkie.
Ręcznie
Z tego przewodnika dowiesz się, jak ręcznie dodać pakiet SDK Maps na iOS do swojego projektu i skonfigurować ustawienia kompilacji w Xcode.
- Pobierz pliki źródłowe pakietu SDK: GooglePlaces-7.4.0.
- Rozpakuj pliki źródłowe. Przejdź do folderu Frameworks, aby uzyskać dostęp do XCFramework.
- Uruchom Xcode i otwórz istniejący projekt lub utwórz nowy. Jeśli dopiero zaczynasz korzystać z systemu iOS, utwórz nowy projekt i wybierz szablon aplikacji na iOS.
- Przeciągnij następujące projekty XCFramework do swojego projektu w sekcji Frameworks, Librarys and Connected Content. Pamiętaj, aby wybrać opcję Nie umieszczaj:
GooglePlaces-x.x.x/GooglePlaces.xcframework
- Kliknij prawym przyciskiem myszy
GooglePlaces.xcframework
w projekcie i wybierz Pokaż w Finderze. - Przeciągnij
GooglePlaces.bundle
z folderuios-arm64/GooglePlaces.framework/Resources
do katalogu najwyższego poziomu w projekcie Xcode. Gdy pojawi się komunikat, nie wybieraj opcji Kopiuj elementy do folderu grupy docelowej. - Wybierz projekt z Nawigatora projektów i wybierz środowisko docelowe swojej aplikacji.
- Otwórz kartę Etapy kompilacji oraz w sekcji Połącz plik binarny z bibliotekami, a potem dodaj te platformy i biblioteki:
CoreGraphics.framework
CoreLocation.framework
libc++.tbd
libz.tbd
QuartzCore.framework
UIKit.framework
Wybierz projekt zamiast konkretnego celu i otwórz kartę Ustawienia kompilacji.
- W sekcji Inne flagi łączące dodaj
-ObjC
. Jeśli nie widzisz tych ustawień, zmień filtr na pasku Ustawienia kompilacji z Podstawowe na Wszystkie.
Krok 3. Dodaj klucz interfejsu API do aplikacji
W poniższych przykładach zastąp YOUR_API_KEY
kluczem interfejsu API.
Swift
Dodaj klucz interfejsu API do urządzenia AppDelegate.swift
w ten sposób:
- Dodaj to oświadczenie importu:
import GooglePlaces
- Dodaj do metody
application(_:didFinishLaunchingWithOptions:)
ten fragment, zastępując YOUR_API_KEY swoim kluczem API:GMSPlacesClient.provideAPIKey("YOUR_API_KEY")
Objective-C
Dodaj klucz interfejsu API do urządzenia AppDelegate.m
w ten sposób:
- Dodaj to oświadczenie importu:
@import GooglePlaces;
- Dodaj do metody
application:didFinishLaunchingWithOptions:
ten fragment, zastępując YOUR_API_KEY swoim kluczem API:[GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];
Krok 4. Zacznij pisać kod
Poniższe przykłady kodu pokazują, jak pobrać bieżące 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.