Wykonaj czynności opisane w tym przewodniku, aby pobrać pakiet SDK Miejsc na iOS, dodać bibliotekę i zależności jej aplikacji oraz bezpłatnie pobrać klucz interfejsu API.
Dla każdej wersji dostępne są Informacje o wersji.
Krok 1. Pobierz najnowszą wersję Xcode
Aby utworzyć projekt za pomocą pakietu Places SDK dla iOS, potrzebujesz:
Krok 2. Zainstaluj pakiet SDK
Aby zainstalować interfejs API w nowym projekcie:Używaj kokosów
Pakiet SDK Miejsc na iOS zawiera poda CocoaPod o nazwie 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śli nie masz jeszcze narzędzia CocoaPods, zainstaluj je na systemie macOS, uruchamiając w terminalu to polecenie. Więcej informacji znajdziesz w przewodniku dla początkujących na temat CocoaPods.
sudo gem install cocoapods
Utwórz pakiet Podfile
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 w 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 element
Podfile
i dodaj zależności wraz z ich wersjami. Oto przykład, który określa nazwę celu aplikacji, oraz nazwę podaGooglePlaces
:source 'https://github.com/CocoaPods/Specs.git' platform :ios, '14.0' target 'YOUR_APPLICATION_TARGET_NAME_HERE' do pod 'GooglePlaces', '8.0.0' end
Uruchom regularniepod outdated
, aby wykryć, czy jest dostępna nowsza wersja, aby zawsze być na bieżąco. - 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
, a także wszystkich ich zależności.pod install
Zamknij Xcode, a następnie kliknij dwukrotnie plik
.xcworkspace
projektu, aby uruchomić Xcode. Od teraz do otwierania tego projektu musisz używać pliku.xcworkspace
.
Aby zaktualizować interfejs API w istniejącym projekcie:
- Otwórz terminal i przejdź do katalogu, w którym znajduje się
Podfile
. - Uruchom polecenie
pod update
. Spowoduje to zaktualizowanie wszystkich interfejsów API określonych w zasadziePodfile
do najnowszej wersji.
Użyj Kartaginy
Pakiet SDK Miejsc na iOS jest dostępny w Carthage – prostym, zdecentralizowanym menedżerze zależności dla projektów Cowa Swift i Goal-C.
- Zainstaluj Carthage. Możesz to zrobić na kilka sposobów, więc szczegółowe 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 w 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, aby regularnie uruchamiać usługęcarthage outdated
, aby zawsze była dostępna nowsza wersja. - 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
, a także wszystkich ich zależności. - W programie Finder w katalogu projektów otwórz pobrane pliki platformy w folderze
Carthage/Build/iOS
. - Przeciągnij te pakiety do projektu (jeśli pojawi się taka prośba, wybierz W razie potrzeby skopiuj elementy):
GooglePlaces-x.x.x/Frameworks/GooglePlaces.xcframework
- Kliknij prawym przyciskiem
GooglePlaces.xcframework
projekt i wybierz Pokaż w Finderze. - Przeciągnij
GooglePlaces.bundle
z folderuResources
do projektu. Upewnij się, że Skopiuj elementy do folderu grupy docelowejnie jest wybrane. - Wybierz projekt w Nawigatorze projektów i wybierz środowisko docelowe aplikacji.
- Otwórz kartę Etapy kompilacji, a następnie 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 określony cel, 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:
- Otwórz terminal i przejdź do katalogu, w którym znajduje się
Cartfile
. - Uruchom polecenie
carthage update
. Wszystkie interfejsy API określone wCartfile
zostaną zaktualizowane 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-8.0.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 wszystkie pakiety Map z poprzednich wersji.
- Przeciągnij te pakiety do projektu (jeśli pojawi się taka prośba, wybierz W razie potrzeby skopiuj elementy):
GooglePlaces-x.x.x/Frameworks/GooglePlaces.xcframework
- Kliknij prawym przyciskiem
GooglePlaces.xcframework
projekt i wybierz Pokaż w Finderze. - Przeciągnij
GooglePlaces.bundle
z folderuResources
do projektu. Upewnij się, że Skopiuj elementy do folderu grupy docelowejnie jest wybrane. - Wybierz projekt w Nawigatorze projektów i wybierz środowisko docelowe aplikacji.
- Otwórz kartę Etapy kompilacji, a następnie 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 określony cel, 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 komputerach z chipsetem M1, do instalowania pakietu Places SDK dla iOS. Z tego przewodnika dowiesz się, jak dodać do projektu pakiet XCFramework zawierający pakiet SDK Miejsc na iOS, oraz skonfigurować ustawienia kompilacji w Xcode.
Z kartonem
Pakiet SDK Miejsc na iOS jest dostępny w Carthage – prostym, zdecentralizowanym menedżerze zależności dla projektów Cowa Swift i Goal-C.
- Zainstaluj Carthage. Możesz to zrobić na kilka sposobów, więc szczegółowe 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 w 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 pole
Cartfile
i dodaj zależności wraz z ich wersjami: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
, a także wszystkich ich zależności. - W Finderze znajdź w katalogu projektu pobrane pliki platformy w obszarze:
Carthage/Build
. - Przeciągnij ten kod XCFramework do swojego projektu w sekcji Frameworks, Bibliotek i treści umieszczonej. Pamiętaj, aby wybrać opcję Nie umieszczaj:
GooglePlaces-x.x.x/GooglePlaces.xcframework
- Kliknij prawym przyciskiem
GooglePlaces.xcframework
projekt 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ę prośba, zaznacz opcję Kopiuj elementy do folderu grupy docelowej. - Wybierz projekt w Nawigatorze projektów i wybierz środowisko docelowe aplikacji.
- Otwórz kartę Etapy kompilacji, a następnie 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 określony cel, 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ć do projektu pakiet SDK Map Google na iOS i skonfigurować ustawienia kompilacji w Xcode.
- Pobierz pliki źródłowe pakietu SDK: GooglePlaces-8.0.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 iOS, utwórz nowy projekt i wybierz szablon aplikacji na iOS.
- Przeciągnij ten kod XCFramework do swojego projektu w sekcji Frameworks, Bibliotek i treści umieszczonej. Pamiętaj, aby wybrać opcję Nie umieszczaj:
GooglePlaces-x.x.x/GooglePlaces.xcframework
- Kliknij prawym przyciskiem
GooglePlaces.xcframework
projekt 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ę prośba, zaznacz opcję Kopiuj elementy do folderu grupy docelowej. - Wybierz projekt w Nawigatorze projektów i wybierz środowisko docelowe aplikacji.
- Otwórz kartę Etapy kompilacji, a następnie 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 określony cel, 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 swojej aplikacji
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:
- Dodaj tę instrukcję importu:
import GooglePlaces
- Dodaj do metody
application(_:didFinishLaunchingWithOptions:)
ten fragment, zastępując YOUR_API_KEY kluczem API:GMSPlacesClient.provideAPIKey("YOUR_API_KEY")
Objective-C
Dodaj klucz interfejsu API do AppDelegate.m
w ten sposób:
- Dodaj tę instrukcję importu:
@import GooglePlaces;
- Dodaj do metody
application:didFinishLaunchingWithOptions:
ten fragment, zastępując YOUR_API_KEY kluczem API:[GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];
Krok 4. Zacznij pisać kod
Te przykłady kodu pokazują, jak pobrać obecne 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.