Po włączeniu płatności i utworzeniu klucza interfejsu API możesz skonfigurować projekt Xcode do tworzenia aplikacji.
Krok 1. Zainstaluj wymagane oprogramowanie
Aby utworzyć projekt, używając pakietu SDK Map na iOS, musisz pobrać i zainstalować:
Krok 2. Utwórz projekt XCode i zainstaluj pakiet SDK Maps na iOS
Używaj CocoaPods
Maps SDK na iOS jest dostępny jako pod CocoaPods. 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
SDK Maps na iOS i użyj go do zainstalowania interfejsu API i jego zależności:
- Jeśli nie masz jeszcze projektu Xcode, utwórz go i zapisz na komputerze lokalnym. Jeśli dopiero zaczynasz korzystać z tej usługi:
- Utwórz nowy projekt.
- Wybierz szablon iOS > Aplikacja.
- Na ekranie opcji projektu:
- Wypełnij pole Nazwa projektu.
- Zapisz wartość w polu Identyfikator pakietu. Możesz użyć tej wartości do ograniczenia klucza interfejsu API poniżej.
- Ustaw Interfejs projektu na Scenorys.
- Ustaw Język na Swift lub Goal-C.
- 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 zależności wymaganej przez pakiet SDK Maps na iOS:source 'https://github.com/CocoaPods/Specs.git' platform :ios, '13.0' target 'YOUR_APPLICATION_TARGET_NAME_HERE' do pod 'GoogleMaps', '7.3.0' end
Aby regularnie wykrywać najnowsze wersje aplikacji, regularnie uruchamiajpod outdated
. W razie potrzeby uaktualnij go do najnowszej wersji. - Zapisz
Podfile
. Otwórz terminal i przejdź do katalogu z kodem
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
Maps SDK na iOS można używać z Carthage, prostym, zdecentralizowanym menedżerem 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 korzystać z tej usługi:
- Utwórz nowy projekt.
- Wybierz szablon iOS > Aplikacja.
- Na ekranie opcji projektu:
- Wypełnij pole Nazwa projektu.
- Zapisz wartość w polu Identyfikator pakietu. Możesz użyć tej wartości do ograniczenia klucza interfejsu API poniżej.
- Ustaw Interfejs projektu na Scenorys.
- Ustaw Język na Swift lub Goal-C.
- 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/GoogleMaps.json" == 6.2.1
Pamiętaj o regularnym uruchomieniucarthage outdated
, aby wykryć, że dostępna jest nowsza wersja, aby zawsze mieć dostęp do najnowszej wersji. W razie potrzeby uaktualnij ją 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 projektu 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, jeśli to możliwe, użyj tej samej wersji, co powyżej).
GoogleMaps-x.x.x/Base/Frameworks/GoogleMapsBase.framework
GoogleMaps-x.x.x/Maps/Frameworks/GoogleMaps.framework
GoogleMaps-x.x.x/Maps/Frameworks/GoogleMapsCore.framework
- (Tylko klienci korzystający z abonamentu Premium)
GoogleMaps-x.x.x/M4B/Frameworks/GoogleMapsM4B.framework
- Kliknij prawym przyciskiem myszy
GoogleMaps.framework
w projekcie i wybierz Pokaż w Finderze. - Przeciągnij
GoogleMaps.bundle
z folderuResources
do katalogu najwyższego poziomu w projekcie Xcode. Po wyświetleniu prośby upewnij się, że opcja Kopiuj elementy do folderu grupy docelowej nie jest wybrana. - Wybierz projekt z Nawigatora projektów i wybierz środowisko docelowe swojej aplikacji.
- Otwórz kartę Etapy kompilacji środowiska docelowego aplikacji i w sekcji Połącz plik binarny z bibliotekami dodaj te platformy i biblioteki:
Accelerate.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
QuartzCore.framework
SystemConfiguration.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 zainstalować pakiet SDK Miejsc na iOS, przeczytaj ten artykuł.
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ć pakiet SDK Maps na iOS do swojego projektu i skonfigurować ustawienia kompilacji w Xcode.
- Pobierz pliki źródłowe pakietu SDK: GoogleMaps-7.3.0.
- Rozpakuj pliki źródłowe.
- Jeśli nie masz jeszcze projektu Xcode, utwórz go i zapisz na komputerze lokalnym. Jeśli dopiero zaczynasz korzystać z tej usługi:
- Utwórz nowy projekt.
- Wybierz szablon iOS > Aplikacja.
- Na ekranie opcji projektu:
- Wypełnij pole Nazwa projektu.
- Zapisz wartość w polu Identyfikator pakietu. Możesz użyć tej wartości do ograniczenia klucza interfejsu API poniżej.
- Ustaw Interfejs projektu na Scenorys.
- Ustaw Język na Swift lub Goal-C.
- Przeciągnij te grupy do projektu: (jeśli pojawi się taka prośba, wybierz Kopiuj elementy, jeśli to możliwe, użyj tej samej wersji, co powyżej).
GoogleMaps-x.x.x/Base/Frameworks/GoogleMapsBase.framework
GoogleMaps-x.x.x/Maps/Frameworks/GoogleMaps.framework
GoogleMaps-x.x.x/Maps/Frameworks/GoogleMapsCore.framework
- (Tylko klienci korzystający z abonamentu Premium)
GoogleMaps-x.x.x/M4B/Frameworks/GoogleMapsM4B.framework
- Kliknij prawym przyciskiem myszy
GoogleMaps.framework
w projekcie i wybierz Pokaż w Finderze. - Przeciągnij
GoogleMaps.bundle
z folderuResources
do katalogu najwyższego poziomu w projekcie Xcode. Po wyświetleniu prośby upewnij się, że opcja Kopiuj elementy do folderu grupy docelowej nie jest wybrana. - Wybierz projekt z Nawigatora projektów i wybierz środowisko docelowe swojej aplikacji.
- Otwórz kartę Etapy kompilacji środowiska docelowego aplikacji i w sekcji Połącz plik binarny z bibliotekami dodaj te platformy i biblioteki:
Accelerate.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
QuartzCore.framework
SystemConfiguration.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 zainstalować pakiet SDK Miejsc na iOS, przeczytaj ten artykuł.
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 Maps na iOS. Ten przewodnik pokazuje, jak dodać do projektu XCFramework z pakietem SDK Maps na iOS oraz skonfigurować ustawienia kompilacji w Xcode.
Z kartką
Maps SDK na iOS można używać z Carthage, prostym, zdecentralizowanym menedżerem 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 korzystać z tej usługi:
- Utwórz nowy projekt.
- Wybierz szablon iOS > Aplikacja.
- Na ekranie opcji projektu:
- Wypełnij pole Nazwa projektu.
- Zapisz wartość w polu Identyfikator pakietu. Możesz użyć tej wartości do ograniczenia klucza interfejsu API poniżej.
- Ustaw Interfejs projektu na Scenorys.
- Ustaw Język na Swift lub Goal-C.
- 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/GoogleMaps.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 te projekty XCFrameworks do projektu w sekcji Frameworks, Librarys and niż content (Elementy robocze, biblioteki i treści umieszczone). Pamiętaj, aby wybrać opcję Nie umieszczaj w przypadku każdego elementu XCFramework:
GoogleMaps-x.x.x/GoogleMapsBase.xcframework
GoogleMaps-x.x.x/GoogleMaps.xcframework
GoogleMaps-x.x.x/GoogleMapsCore.xcframework
- (Tylko klienci korzystający z abonamentu Premium)
GoogleMaps-x.x.x/GoogleMapsM4B.xcframework
- Kliknij prawym przyciskiem myszy
GoogleMaps.xcframework
w projekcie i wybierz Pokaż w Finderze. - Przeciągnij
GoogleMaps.bundle
z folderuios-arm64_x86_64-simulator/GoogleMaps.framework/Resources
do katalogu najwyższego poziomu w projekcie Xcode. Po wyświetleniu prośby upewnij się, że opcja Kopiuj elementy w razie potrzeby nie jest wybrana. - Wybierz projekt z Nawigatora projektów i wybierz środowisko docelowe swojej aplikacji.
- Otwórz kartę Etapy kompilacji środowiska docelowego aplikacji i w sekcji Połącz plik binarny z bibliotekami, a następnie dodaj te platformy i biblioteki:
Accelerate.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
QuartzCore.framework
SystemConfiguration.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 zainstalować pakiet SDK Miejsc na urządzenia XCFramework w iOS, przeczytaj wprowadzenie do tego pakietu.
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: GoogleMaps-7.3.0.
- Rozpakuj pliki źródłowe. Przejdź do folderu Frameworks, aby uzyskać dostęp do XCFramework.
- Jeśli nie masz jeszcze projektu Xcode, utwórz go i zapisz na komputerze lokalnym. Jeśli dopiero zaczynasz korzystać z tej usługi:
- Utwórz nowy projekt.
- Wybierz szablon iOS > Aplikacja.
- Na ekranie opcji projektu:
- Wypełnij pole Nazwa projektu.
- Zapisz wartość w polu Identyfikator pakietu. Możesz użyć tej wartości do ograniczenia klucza interfejsu API poniżej.
- Ustaw Interfejs projektu na Scenorys.
- Ustaw Język na Swift lub Goal-C.
- Przeciągnij te projekty XCFrameworks do projektu w sekcji Frameworks, Librarys and niż content (Elementy robocze, biblioteki i treści umieszczone). Pamiętaj, aby wybrać opcję Nie umieszczaj w przypadku każdego elementu XCFramework:
GoogleMaps-x.x.x/GoogleMapsBase.xcframework
GoogleMaps-x.x.x/GoogleMaps.xcframework
GoogleMaps-x.x.x/GoogleMapsCore.xcframework
- (Tylko klienci korzystający z abonamentu Premium)
GoogleMaps-x.x.x/GoogleMapsM4B.xcframework
- Kliknij prawym przyciskiem myszy
GoogleMaps.xcframework
w projekcie i wybierz Pokaż w Finderze. - Przeciągnij
GoogleMaps.bundle
z folderuios-arm64_x86_64-simulator/GoogleMaps.framework/Resources
do katalogu najwyższego poziomu w projekcie Xcode. Po wyświetleniu prośby upewnij się, że opcja Kopiuj elementy w razie potrzeby nie jest wybrana. - Wybierz projekt z Nawigatora projektów i wybierz środowisko docelowe swojej aplikacji.
- Otwórz kartę Etapy kompilacji środowiska docelowego aplikacji i w sekcji Połącz plik binarny z bibliotekami, a następnie dodaj te platformy i biblioteki:
Accelerate.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
QuartzCore.framework
SystemConfiguration.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 zainstalować pakiet SDK Miejsc na urządzenia XCFramework w iOS, przeczytaj wprowadzenie do tego pakietu.
Krok 3. Dodaj klucz interfejsu API do projektu
W sekcji Wygeneruj klucz interfejsu API został wygenerowany klucz interfejsu API dla Twojej aplikacji. Teraz dodaj ten klucz do swojego projektu Xcode.
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 GoogleMaps
- Dodaj do metody
application(_:didFinishLaunchingWithOptions:)
za pomocą klucza interfejsu API:GMSServices.provideAPIKey("YOUR_API_KEY")
- Jeśli używasz też interfejsu API Miejsc, dodaj klucz jeszcze raz, jak pokazano tutaj:
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 GoogleMaps;
- Dodaj do metody
application:didFinishLaunchingWithOptions:
za pomocą klucza interfejsu API:[GMSServices provideAPIKey:@"YOUR_API_KEY"];
- Jeśli używasz też interfejsu API Miejsc, dodaj klucz jeszcze raz, jak pokazano tutaj:
[GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];
Krok 4. (Opcjonalnie) Włącz używanie mechanizmu renderowania metalu
Maps SDK na iOS umożliwia korzystanie z mechanizmu renderowania Metal od Apple. Aby wypróbować mechanizm renderowania Metal w swojej aplikacji, wywołaj funkcję [GMSServices
setMetalRendererEnabled:YES]
w celu C lub GMSServices.setMetalRendererEnabled(true)
w Swift przed utworzeniem widoku mapy.
Jeśli instalujesz pakiet SDK ręcznie, musisz też dodać Metal.framework
w XCode.
Krok 5. Dodaj mapę
Poniższy kod pokazuje, jak dodać prostą mapę do istniejącego elementu ViewController
:
Dodaj lub zaktualizuj metody w domyślnej aplikacji
ViewController
, aby utworzyć i zainicjować instancjęGMSMapView
.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 camera = GMSCameraPosition.camera(withLatitude: -33.86, longitude: 151.20, zoom: 6.0) let mapView = GMSMapView.map(withFrame: self.view.frame, camera: camera) 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. GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.86 longitude:151.20 zoom:6]; GMSMapView *mapView = [GMSMapView mapWithFrame:self.view.frame camera:camera]; mapView.myLocationEnabled = YES; [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
Uruchom aplikację. Powinna wyświetlić się mapa z pojedynczym znacznikiem wyśrodkowana nad Sydney w Australii. Jeśli widzisz znacznik, ale mapa jest niewidoczna, sprawdź, czy podano klucz interfejsu API.
Krok 6 (opcjonalny). Zadeklaruj schematy adresów URL używane przez interfejs API
Począwszy od iOS 9 i Xcode 7, aplikacje mogą deklarować schematy adresów URL, które zamierzają otworzyć, określając schematy w pliku Info.plist
aplikacji. Pakiet SDK Map na iOS otwiera aplikację mobilną Mapy Google, gdy użytkownik klika logo Google na mapie, dzięki czemu może zadeklarować odpowiednie schematy adresów URL.
Aby zadeklarować schematy adresów URL używane przez pakiet Maps SDK na iOS, dodaj do wiersza Info.plist
te wiersze:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>googlechromes</string>
<string>comgooglemaps</string>
</array>
Poniższy zrzut ekranu przedstawia konfigurację interfejsu Xcode:
Jeśli nie dodasz powyższego oświadczenia, po kliknięciu przez użytkownika logo Google na mapie mogą wystąpić takie błędy:
-canOpenURL: failed for URL: "comgooglemaps://" - error: "This app is not allowed to query for scheme comgooglemaps"
-canOpenURL: failed for URL: "googlechromes://" - error: "This app is not allowed to query for scheme googlechromes"
Aby uniknąć tych błędów, dodaj deklarację do Info.plist
w sposób opisany powyżej.
Co dalej?
Teraz, gdy masz już klucz interfejsu API i projekt Xcode, możesz tworzyć i uruchamiać aplikacje. Maps SDK na iOS zawiera wiele samouczków i przykładowych aplikacji, które pomogą Ci zacząć. Więcej informacji: