Po włączeniu płatności i utworzeniu klucza interfejsu API możesz skonfigurować projekt Xcode, którego będziesz używać do programowania aplikacji.
Krok 1. Zainstaluj wymagane oprogramowanie
Aby utworzyć projekt za pomocą pakietu SDK Map na iOS, musisz pobrać i zainstalować:
Krok 2. Utwórz projekt Xcode i zainstaluj pakiet SDK Maps na iOS
Korzystanie z CocoaPods
Pakiet SDK Map na iOS jest dostępny jako pod z CocoaPods. 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 Map 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 jesteś nowym deweloperem iOS:
- Utwórz nowy projekt.
- Wybierz szablon iOS > App.
- 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 Interface (Interfejs) w projekcie Storyboard.
- 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 element
Podfile
i dodaj zależności oraz ich wersje. Oto przykład zależności, której potrzebujesz w przypadku pakietu SDK Map na iOS:source 'https://github.com/CocoaPods/Specs.git' platform :ios, '14.0' target 'YOUR_APPLICATION_TARGET_NAME_HERE' do pod 'GoogleMaps', '8.0.0' end
Pamiętaj o regularnym uruchamianiupod outdated
, aby wykrywać, czy jest dostępna nowsza wersja, aby zawsze być na bieżąco. W razie potrzeby uaktualnij je 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
, 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 Maps SDK 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 jesteś nowym deweloperem iOS:
- Utwórz nowy projekt.
- Wybierz szablon iOS > App.
- 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 Interface (Interfejs) w projekcie Storyboard.
- 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 uruchamianiucarthage outdated
, aby zawsze mieć dostęp do nowszej wersji, aby mieć pewność, że zawsze korzystasz z najnowszej. W razie potrzeby uaktualnij je 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
, a także wszystkich ich zależności. - W Finderze znajdź w katalogu projektu pobrane pliki platformy w obszarze:
Carthage/Build/iOS
. - Przeciągnij te pakiety do projektu: (jeśli pojawi się taka prośba, wybierz Kopiuj elementy, jeśli to konieczne, użyj tej samej wersji co powyżej).
GoogleMaps-x.x.x/Base/Frameworks/GoogleMapsBase.xcframework
GoogleMaps-x.x.x/Maps/Frameworks/GoogleMaps.xcframework
GoogleMaps-x.x.x/Maps/Frameworks/GoogleMapsCore.xcframework
- (tylko klienci korzystający z abonamentu Premium)
GoogleMaps-x.x.x/M4B/Frameworks/GoogleMapsM4B.xcframework
- Kliknij prawym przyciskiem
GoogleMaps.xcframework
projekt i wybierz Pokaż w Finderze. - Przeciągnij
GoogleMaps.bundle
z folderuResources
do katalogu najwyższego poziomu w projekcie Xcode. Gdy pojawi się pytanie, nie wybieraj opcji Kopiuj elementy do folderu grupy docelowej. - Wybierz projekt w Nawigatorze projektów i wybierz środowisko docelowe aplikacji.
- Otwórz kartę Etapy kompilacji dla ś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, 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 zainstalować pakiet SDK Miejsc na iOS, przeczytaj artykuł Korzystanie z pakietu SDK Miejsc na iOS.
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.
Instalowanie ręczne
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: GoogleMap-8.0.0.
- Rozpakuj pliki źródłowe.
- Jeśli nie masz jeszcze projektu Xcode, utwórz go i zapisz na komputerze lokalnym. Jeśli jesteś nowym deweloperem iOS:
- Utwórz nowy projekt.
- Wybierz szablon iOS > App.
- 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 Interface (Interfejs) w projekcie Storyboard.
- Ustaw Język na Swift lub Goal-C.
- Przeciągnij te pakiety do projektu: (jeśli pojawi się taka prośba, wybierz Kopiuj elementy, jeśli to konieczne, użyj tej samej wersji co powyżej).
GoogleMaps-x.x.x/Base/Frameworks/GoogleMapsBase.xcframework
GoogleMaps-x.x.x/Maps/Frameworks/GoogleMaps.xcframework
GoogleMaps-x.x.x/Maps/Frameworks/GoogleMapsCore.xcframework
- (tylko klienci korzystający z abonamentu Premium)
GoogleMaps-x.x.x/M4B/Frameworks/GoogleMapsM4B.xcframework
- Kliknij prawym przyciskiem
GoogleMaps.xcframework
projekt i wybierz Pokaż w Finderze. - Przeciągnij
GoogleMaps.bundle
z folderuResources
do katalogu najwyższego poziomu w projekcie Xcode. Gdy pojawi się pytanie, nie wybieraj opcji Kopiuj elementy do folderu grupy docelowej. - Wybierz projekt w Nawigatorze projektów i wybierz środowisko docelowe aplikacji.
- Otwórz kartę Etapy kompilacji dla ś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, 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 zainstalować pakiet SDK Miejsc na iOS, przeczytaj artykuł Korzystanie z pakietu SDK Miejsc na iOS.
Zainstaluj XCFramework
XCFramework to pakiet binarny, którego możesz używać na wielu platformach, w tym na komputerach z chipsetem M1, do instalowania pakietu SDK Map na iOS. Ten przewodnik pokazuje, jak dodać do projektu XCFramework z pakietem SDK Maps na iOS oraz skonfigurować ustawienia kompilacji w Xcode.
Z kartonem
Z pakietu Maps SDK na iOS można korzystać 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 jesteś nowym deweloperem iOS:
- Utwórz nowy projekt.
- Wybierz szablon iOS > App.
- 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 Interface (Interfejs) w projekcie Storyboard.
- 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 pole
Cartfile
i dodaj zależności wraz z ich wersjami: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
, a także wszystkich ich zależności. - W Finderze znajdź w katalogu projektu pobrane pliki platformy w obszarze:
Carthage/Build
. - Przeciągnij te XCFrameworks do swojego projektu w sekcji Frameworks, Bibliotek i treści umieszczonej. Dla każdej zmiennej XCFramework wybierz Nie umieszczaj:
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
GoogleMaps.xcframework
projekt 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. Gdy pojawi się prośba, zaznacz opcję W razie potrzeby kopiuj elementy. - Wybierz projekt w Nawigatorze projektów i wybierz środowisko docelowe aplikacji.
- Otwórz kartę Etapy kompilacji dla ś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, 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 zainstalować pakiet SDK pakietu SDK Miejsc na iOS, przeczytaj artykuł Korzystanie z pakietu Places SDK dla iOS.
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: GoogleMap-8.0.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 jesteś nowym deweloperem iOS:
- Utwórz nowy projekt.
- Wybierz szablon iOS > App.
- 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 Interface (Interfejs) w projekcie Storyboard.
- Ustaw Język na Swift lub Goal-C.
- Przeciągnij te XCFrameworks do swojego projektu w sekcji Frameworks, Bibliotek i treści umieszczonej. Dla każdej zmiennej XCFramework wybierz Nie umieszczaj:
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
GoogleMaps.xcframework
projekt 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. Gdy pojawi się prośba, zaznacz opcję W razie potrzeby kopiuj elementy. - Wybierz projekt w Nawigatorze projektów i wybierz środowisko docelowe aplikacji.
- Otwórz kartę Etapy kompilacji dla ś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, 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 zainstalować pakiet SDK pakietu SDK Miejsc na iOS, przeczytaj artykuł Korzystanie z pakietu Places SDK dla iOS.
Krok 3. Dodaj klucz projektu do projektu
W sekcji Wygeneruj klucz interfejsu API wygenerujesz klucz interfejsu API dla swojej 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 AppDelegate.swift
w ten sposób:
- Dodaj tę instrukcję importu:
import GoogleMaps
- Dodaj do metody
application(_:didFinishLaunchingWithOptions:)
za pomocą klucza interfejsu API:GMSServices.provideAPIKey("YOUR_API_KEY")
- Jeśli używasz też interfejsu Places API, dodaj klucz jeszcze raz w ten sposób:
GMSPlacesClient.provideAPIKey("YOUR_API_KEY")
Objective-C
Dodaj klucz interfejsu API do AppDelegate.m
w ten sposób:
- Dodaj tę instrukcję importu:
@import GoogleMaps;
- Dodaj do metody
application:didFinishLaunchingWithOptions:
za pomocą klucza interfejsu API:[GMSServices provideAPIKey:@"YOUR_API_KEY"];
- Jeśli używasz też interfejsu Places API, dodaj klucz jeszcze raz w ten sposób:
[GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];
Krok 4. (Opcjonalnie) Zaakceptuj używanie mechanizmu renderowania Metal
Pakiet SDK Map na iOS umożliwia korzystanie z mechanizmu renderowania Metal firmy Apple. Aby wypróbować mechanizm renderowania Metal w swojej aplikacji, wywołaj [GMSServices
setMetalRendererEnabled:YES]
w celu C lub GMSServices.setMetalRendererEnabled(true)
w Swift, zanim utworzysz widoki mapy.
Jeśli
instalujesz pakiet SDK ręcznie, musisz też dodać tag Metal.framework
w kodzie Xcode.
Krok 5. Dodaj mapę
Poniższy kod pokazuje, jak dodać prostą mapę do istniejącego obiektu ViewController
:
Dodaj lub zaktualizuj metody w domyślnym
ViewController
swojej aplikacji, aby utworzyć i zainicjować wystąpienieGMSMapView
.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 ten znacznik, ale mapa nie jest widoczna, sprawdź, czy został udostępniony klucz interfejsu API.
Krok 6. (Opcjonalnie) Zadeklaruj schematy adresów URL używane przez interfejs API
Począwszy od iOS 9 i Xcode 7, aplikacje mogą zadeklarować schematy adresów URL, które zamierzasz otworzyć, określając je w pliku Info.plist
. Pakiet SDK Map na iOS otwiera aplikację mobilną Mapy Google, gdy użytkownik klika logo Google na mapie i może zadeklarować odpowiednie schematy adresów URL.
Aby zadeklarować schematy URL używane przez pakiet SDK Map na iOS, dodaj do wiersza Info.plist
te wiersze:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>googlechromes</string>
<string>comgooglemaps</string>
</array>
Zrzut ekranu poniżej przedstawia konfigurację interfejsu Xcode:
Bez takiej deklaracji mogą wystąpić te błędy, gdy użytkownik kliknie logo Google na mapie:
-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. Pakiet SDK Map na iOS zawiera wiele samouczków i przykładowych aplikacji, które pomogą Ci zacząć. Więcej informacji: