Gdy włączysz płatności i utworzysz klucz interfejsu API, możesz skonfigurować Xcode projektu twórczego, którego wykorzystujesz do tworzenia aplikacji.
Informacje o wersji są dostępne dla: wersji.
Krok 1. Zainstaluj wymagane oprogramowanie
Aby utworzyć projekt za pomocą pakietu Navigation SDK na iOS, musisz pobrać i zainstalować:
- Xcode, wersji 15.0 lub nowszej.
Krok 2. Utwórz projekt Xcode i zainstaluj pakiet Navigation SDK
Menedżer pakietów Swift
Pakiet Navigation SDK można zainstalować za pomocą programu Menedżer pakietów Swift. Aby dodać pakiet SDK, upewnij się, że masz usunięto wszystkie zależności Navigation SDK.
Aby dodać pakiet SDK do nowego lub istniejącego projektu, wykonaj te czynności:
-
Otwórz Xcode
project
lubworkspace
i przejdź do File > (Plik >). Dodaj zależności pakietów. - Jako URL wpisz https://github.com/googlemaps/ios-navigation-sdk i naciśnij Enter i pobierz pakiet, a potem kliknij „Dodaj pakiet”.
-
Aby zainstalować określony element
version
, w polu Reguła zależności ustaw jedną z z użyciem opcji opartych na wersji. W przypadku nowych projektów zalecamy określenie najnowszej wersji i za pomocą opcji „Dokładna wersja” . Gdy skończysz, kliknij „Dodaj pakiet”. -
W oknie Wybierz produkty w pakiecie sprawdź, czy
GoogleNavigation
zostanie dodany do wyznaczonej wartości docelowejmain
. Gdy skończysz, kliknij „Dodaj pakiet”. -
Aby sprawdzić instalację, przejdź do panelu
General
środowiska docelowego. W obszarze Frameworks, biblioteki i umieszczona treść powinny być widoczne zainstalowane pakiety. Możesz też wyświetlić „Zależności pakietów” w narzędziu „Project Navigator” aby zweryfikować pakiet i jego wersję.
Aby zaktualizować package
w istniejącym projekcie, wykonaj te czynności:
W przypadku uaktualnienia z wersji wcześniejszej niż 9.0.0 musisz usunąć te zależności:
GoogleMapsBase
,GoogleMapsCore
orazGoogleMapsM4B
po uaktualnieniu. Nie usuwaj zależności dlaGoogleMaps
Więcej informacji: Informacje o wersji 9.0.0W ustawieniach konfiguracji projektu Xcode znajdź Frameworks, Libraries, i Umieszczone treści. Aby usunąć strukturę, użyj znaku minusa(-):
GoogleMapsBase
(tylko w przypadku uaktualnień z wersji starszych niż 9.0.0)GoogleMapsCore
(tylko w przypadku uaktualnień z wersji starszych niż 9.0.0)GoogleMapsM4B
(tylko w przypadku uaktualnień z wersji starszych niż 9.0.0)
- W Xcode wybierz „File” (Plik > >) Pakiety > Zaktualizuj do najnowszych wersji pakietu”.
- Aby sprawdzić poprawność instalacji, przejdź do sekcji Zależności pakietów w narzędziu Project Navigator. aby zweryfikować pakiet i jego wersję.
Aby usunąć istniejące zależności pakietu Navigation SDK dodane za pomocą
CocoaPods
, wykonaj te czynności:
- Zamknij obszar roboczy Xcode. Otwórz terminal i wykonaj to polecenie:
sudo gem install cocoapods-deintegrate cocoapods-clean pod deintegrate pod cache clean --all
-
Usuń
Podfile
,Podfile.resolved
i Kod Xcodeworkspace
, jeśli nie używasz ich do żadnych innych celów niż CocoaPods.
-
W ustawieniach konfiguracji projektu Xcode znajdź Frameworks, Libraries,
i Umieszczone treści. Aby usunąć strukturę, użyj znaku minusa(-):
GoogleMaps.xcframework
GoogleMapsBase.xcframework
GoogleMapsCore.xcframework
GoogleNavigation.xcframework
-
W katalogu najwyższego poziomu projektu Xcode usuń
GoogleMaps
w pakiecie.
CocoaPods
Pakiet Navigation SDK na iOS jest dostępny jako CocoaPods. CocoaPods to menedżer zależności open source dla rozwiązań Swift i Objective-C. Projekty Cocoa.
Jeśli nie masz jeszcze narzędzia CocoaPods, zainstaluj je w systemie macOS przez uruchamiając poniższe polecenie w terminalu. Więcej informacji: CocoaPods Przewodnik dla początkujących
sudo gem install cocoapods
Utwórz pakiet Podfile
dla pakietu Navigation SDK na iOS i użyj
aby zainstalować interfejs API i jego zależności:
- Jeśli nie masz jeszcze projektu Xcode, utwórz go teraz i zapisz w
na komputerze lokalnym. Jeśli dopiero zaczynasz programowanie aplikacji na iOS:
- Utwórz nowy projekt.
- Wybierz kolejno iOS > App.
- Na ekranie opcji projektu:
- Wpisz nazwę projektu.
- Zapisz wartość pola Identyfikator pakietu. Możesz użyć tej wartości, aby ograniczyć poniżej swój klucz interfejsu API.
- Ustaw projekt Interface na Storyboard.
- Ustaw Language (Język) na Swift lub Objective-C.
- Utwórz w katalogu projektu plik o nazwie
Podfile
. Ten definiuje zależności projektu. - Edytuj
Podfile
i dodaj zależności wraz z ich wersji. Oto przykład zawierający zależność potrzebną do wywołania Pakiet SDK do nawigacji na iOS: # Dokumentacja instalacji Cocoapods #source 'https://github.com/CocoaPods/Specs.git' platform :ios, '15.0' target 'YOUR_APPLICATION_TARGET_NAME_HERE' do pod 'GoogleNavigation', '9.0.0' end
Pamiętaj, aby regularnie uruchamiać aplikacjępod outdated
, aby wykryć nowszą wersję wersji. W razie potrzeby uaktualnij 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 programu Interfejsy API określone w zasadziePodfile
wraz z zależnościami.pod install
Zamknij Xcode, a następnie otwórz projekt
.xcworkspace
, aby uruchomić Xcode. Od tej pory musisz otworzyć projekt za pomocą 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ślone w najnowszej wersji plikuPodfile
.
Instalacja ręczna
W tym przewodniku pokazujemy, jak ręcznie dodać środowisko XCFrameworks zawierające Navigation SDK na iOS i Maps SDK na iOS do projektu i skonfigurować ustawienia kompilacji w Xcode. XCFramework to pakiet binarny, którego można używać na wielu platformach, w tym na komputerach z chipsetem M1.
Wykonaj te czynności, aby zainstalować XCFrameworks na potrzeby pakietu Navigation SDK na iOS. oraz Maps SDK na iOS:
- Pobierz te pliki binarne i pliki zasobów pakietu SDK:
- Uruchom Xcode i otwórz istniejący projekt lub utwórz nowy w projektach AI. Jeśli dopiero zaczynasz korzystać z iOS, utwórz nowy projekt i wybierz Szablon aplikacji na iOS.
- Usuń z projektu wszystkie dotychczasowe odniesienia do Map, Nawigacji i Miejsca.
- Przeciągnij te XCFrameworks do projektu
Ramki, biblioteki i umieszczone treści, aby zainstalować zarówno Mapy,
i pakiety SDK nawigacyjne (gdy pojawi się odpowiedni komunikat, wybierz Skopiuj elementy w razie potrzeby):
GoogleMaps.xcframework
GoogleMapsBase.xcframework
GoogleMapsCore.xcframework
GoogleNavigation.xcframework
- Przeciągnij obiekt
GoogleMaps.bundle
z pobranego zasobu GoogleMapsResources do katalogu najwyższego poziomu projektu Xcode. Gdy pojawi się odpowiedni komunikat, Upewnij się, że jest zaznaczona opcja Kopiuj elementy w razie potrzeby. - Przeciągnij
GoogleNavigation.bundle
z pobranego zasobu GoogleNavigationResources. do katalogu najwyższego poziomu projektu Xcode. Gdy pojawi się odpowiedni komunikat, upewnij się, Wybrana opcja Kopiuj elementy do folderu grupy docelowej jest zaznaczona. - Wybierz projekt w narzędziu Project Navigator, a następnie jako cel aplikacji.
- Otwórz kartę Build Phases (Etapy kompilacji) i w
Połącz plik binarny z bibliotekami, dodaj te platformy i biblioteki:
Accelerate.framework
AudioToolbox.framework
AVFoundation.framework
Contacts.framework
CoreData.framework
CoreGraphics.framework
CoreImage.framework
CoreLocation.framework
CoreTelephony.framework
CoreText.framework
GLKit.framework
ImageIO.framework
libc++.tbd
libxml2.tbd
libz.tbd
Metal.framework
OpenGLES.framework
QuartzCore.framework
Security.framework
SystemConfiguration.framework
UIKit.framework
UserNotifications.framework
WebKit.framework
- W miejscu docelowym aplikacji wybierz kartę Możliwości.
włącz Tryby w tle oraz te tryby:
- Dźwięk, AirPlay i obraz w obrazie
- Aktualizacje lokalizacji
- Wybierz projekt zamiast konkretnego środowiska docelowego i otwórz kompilację
. W sekcji Inne flagi łączące:
dodaj
‑ObjC
do funkcji debugowania i release. Jeśli te ustawienia nie są widoczne, zmień filtr w Pasek Ustawienia kompilacji z Podstawowe na Wszystkie. - Otwórz
Info.plist
i dodaj te pary klucz-wartość:- Klucz:
NSLocationWhenInUseUsageDescription
(prywatność – opis użycia podczas korzystania z lokalizacji)
Wartość: „Ta aplikacja wymaga uprawnień do korzystania z Twojej lokalizacji w celu korzystania z nawigacji zakręt po zakręcie”. - Klucz:
NSLocationAlwaysAndWhenInUseUsageDescription
(Prywatność – zawsze i kiedy jest używana lokalizacja)
Wartość: „Ta aplikacja wymaga uprawnień do korzystania z Twojej lokalizacji w celu korzystania z nawigacji zakręt po zakręcie”.
- Klucz:
Krok 3. Sprawdź plik manifestu prywatności Apple
Apple wymaga podania informacji o ochronie prywatności w aplikacjach z App Store. Aktualizacje i inne informacje znajdziesz na stronie z informacjami o ochronie prywatności w Apple App Store.
Plik manifestu prywatności Apple jest zawarty w pakiecie zasobów SDK. Aby sprawdzić, czy plik manifestu prywatności został dołączony, i sprawdzić jego zawartość, utwórz archiwum aplikacji i wygeneruj raport o ochronie prywatności z archiwum.
Krok 4. Dodaj klucz interfejsu API do projektu
Poniższe przykłady pokazują, jak dodać klucz interfejsu API do projektu w Xcode:
Swift
Dodaj klucz interfejsu API do AppDelegate.swift
w ten sposób:
- Dodaj te instrukcje importu:
import GoogleMaps import GoogleNavigation
- Dodaj te elementy do:
application(_:didFinishLaunchingWithOptions:)
:GMSServices.provideAPIKey("YOUR_API_KEY")
Objective-C
Dodaj klucz interfejsu API do AppDelegate.m
w ten sposób:
- Dodaj te instrukcje importu:
@import GoogleMaps; @import GoogleNavigation;
- Dodaj te elementy do:
application:didFinishLaunchingWithOptions:
:[GMSServices provideAPIKey:@"YOUR_API_KEY"];
Krok 5. Dodaj mapę
Ten kod pokazuje, jak dodać prostą mapę do istniejącego obiektu ViewController
.
z uwzględnieniem początkowych ustawień nawigacji.
Aby można było włączyć nawigację, użytkownik musi zaakceptować warunki
warunków. Aby poprosić użytkownika, wywołaj
GMSNavigationServices.showTermsAndConditionsDialogIfNeeded()
, a następnie sprawdź, czy
sprawdzić, czy warunki zostały zaakceptowane. Jeśli użytkownik odrzuci warunki,
Pole mapView.isNavigationEnabled = true
nie ma żadnego efektu, a wartość mapView.navigator
jest
nil.
Swift
import UIKit import GoogleNavigation class ViewController: UIViewController { var mapView: GMSMapView! var locationManager: CLLocationManager! override func loadView() { locationManager = CLLocationManager() locationManager.requestAlwaysAuthorization() let options = GMSMapViewOptions() options.camera = camera options.frame = .zero mapView = GMSMapView(options: options) // Show the terms and conditions. let termsAndConditionsOptions = GMSNavigationTermsAndConditionsOptions(companyName: "Ride Share Co.") GMSNavigationServices.showTermsAndConditionsDialogIfNeeded(with: termsAndConditionsOptions) { termsAccepted in if termsAccepted { // Enable navigation if the user accepts the terms. self.mapView.isNavigationEnabled = true } else { // Handle the case when the user rejects the terms and conditions. } } view = mapView } // TODO: Add navigation code. }
Objective-C
#import "ViewController.h" @import GoogleNavigation; @interface ViewController () @end @implementation ViewController GMSMapView *_mapView; CLLocationManager *_locationManager; - (void)loadView { _locationManager = [[CLLocationManager alloc] init]; [_locationManager requestAlwaysAuthorization]; GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:47.67 longitude:-122.20 zoom:14]; GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init]; options.frame = CGRectZero; options.camera = camera; options.mapID = mapID; _mapView = [[GMSMapView alloc] initWithOptions:options]; // Show the terms and conditions. GMSNavigationTermsAndConditionsOptions *termsAndConditionsOptions = [[GMSNavigationTermsAndConditionsOptions alloc] initWithCompanyName:@"Ride Sharing Co."]; [GMSNavigationServices showTermsAndConditionsDialogIfNeededWithOptions:termsAndConditionsOptions callback:^(BOOL termsAccepted) { if (termsAccepted) { // Enable navigation if the user accepts the terms. _mapView.navigationEnabled = YES; } else { // Handle the case when the user rejects the terms and conditions. } }]; self.view = _mapView; } // TODO: Add navigation code. @end
Uruchom swoją aplikację. Powinna zostać wyświetlona mapa wyśrodkowana na Kirkland w stanie Waszyngton.
Jeśli mapa nie jest widoczna, wykonaj te czynności:
- Sprawdź, czy został podany prawidłowy klucz interfejsu API.
- Sprawdź, czy pakiet NavSDK jest włączony w konsoli Cloud.
- Jeśli masz zainstalowany pakiet Nav SDK, ale Twój projekt nie korzysta z interfejsów Nav SDK API, usuń go z pliku binarnego.
Jeśli jesteś klientem korzystającym z usług mobilnych
Jeśli jesteś klientem korzystającym z usług mobilnych, dowiedz się więcej o rozliczeniach znajdziesz w dokumentacji dotyczącej mobilności. Więcej informacji o nagrywaniu transakcji, patrz Skonfiguruj rozliczenia Aby dowiedzieć się, jak dodać identyfikatory transakcji do implementacji pakietu Navigation SDK, zapoznaj się z artykułem Powiąż wykorzystanie usługi z transakcjami dotyczącymi Mobile.
Co dalej?
Po utworzeniu klucza interfejsu API i projektu Xcode możesz tworzyć i uruchamiać aplikacje. W pakiecie Navigation SDK na iOS samouczki, które pomogą Ci pierwsze kroki. Więcej informacji:
- samouczki,