Konfigurowanie projektu Xcode

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:

  1. Otwórz Xcode project lub workspace i przejdź do File > (Plik >). Dodaj zależności pakietów.
  2. Jako URL wpisz https://github.com/googlemaps/ios-navigation-sdk i naciśnij Enter i pobierz pakiet, a potem kliknij „Dodaj pakiet”.
  3. 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”.
  4. W oknie Wybierz produkty w pakiecie sprawdź, czy GoogleNavigation zostanie dodany do wyznaczonej wartości docelowej main. Gdy skończysz, kliknij „Dodaj pakiet”.
  5. 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:

  1. W przypadku uaktualnienia z wersji wcześniejszej niż 9.0.0 musisz usunąć te zależności: GoogleMapsBase, GoogleMapsCore oraz GoogleMapsM4B po uaktualnieniu. Nie usuwaj zależności dla GoogleMaps Więcej informacji: Informacje o wersji 9.0.0

    W 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)
  2. W Xcode wybierz „File” (Plik > >) Pakiety > Zaktualizuj do najnowszych wersji pakietu”.
  3. 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:

  1. Zamknij obszar roboczy Xcode. Otwórz terminal i wykonaj to polecenie:
    sudo gem install cocoapods-deintegrate cocoapods-clean 
    pod deintegrate 
    pod cache clean --all
  2. Usuń Podfile, Podfile.resolved i Kod Xcode workspace, jeśli nie używasz ich do żadnych innych celów niż CocoaPods.

Aby usunąć ręcznie zainstalowany pakiet Navigation SDK na iOS, wykonaj te czynności:
  1. 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
  2. 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:

  1. 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:
    1. Utwórz nowy projekt.
    2. Wybierz kolejno iOS > App.
    3. Na ekranie opcji projektu:
      1. Wpisz nazwę projektu.
      2. Zapisz wartość pola Identyfikator pakietu. Możesz użyć tej wartości, aby ograniczyć poniżej swój klucz interfejsu API.
      3. Ustaw projekt Interface na Storyboard.
      4. Ustaw Language (Język) na Swift lub Objective-C.
  2. Utwórz w katalogu projektu plik o nazwie Podfile. Ten definiuje zależności projektu.
  3. 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.1.0'
    end
            
    Pamiętaj, aby regularnie uruchamiać aplikację pod outdated, aby wykryć nowszą wersję wersji. W razie potrzeby uaktualnij do najnowszej wersji.
  4. Zapisz Podfile.
  5. Otwórz terminal i przejdź do katalogu zawierającego Podfile:

    cd <path-to-project>
  6. Uruchom polecenie pod install. Spowoduje to zainstalowanie programu Interfejsy API określone w zasadzie Podfile wraz z zależnościami.

    pod install
  7. 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:

  1. Otwórz terminal i przejdź do katalogu projektu zawierającego Podfile.
  2. Uruchom polecenie pod update. Spowoduje to zaktualizowanie wszystkich interfejsów API określone w najnowszej wersji pliku Podfile.

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:

  1. Pobierz te pliki binarne i pliki zasobów pakietu SDK:
  2. 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.
  3. Usuń z projektu wszystkie dotychczasowe odniesienia do Map, Nawigacji i Miejsca.
  4. 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
  5. 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.
  6. 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.
  7. Wybierz projekt w narzędziu Project Navigator, a następnie jako cel aplikacji.
  8. 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
  9. 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
  10. 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.
  11. 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ść – opis użycia: „zawsze” i „kiedy jest używany”)
      Wartość: „Ta aplikacja wymaga uprawnień do korzystania z Twojej lokalizacji w celu korzystania z nawigacji zakręt po zakręcie”.

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:

  1. Dodaj te instrukcje importu:
    import GoogleMaps
    import GoogleNavigation
  2. Dodaj te elementy do: application(_:didFinishLaunchingWithOptions:) :
    GMSServices.provideAPIKey("YOUR_API_KEY")

Objective-C

Dodaj klucz interfejsu API do AppDelegate.m w ten sposób:

  1. Dodaj te instrukcje importu:
    @import GoogleMaps;
    @import GoogleNavigation;
  2. 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: