Konfigurowanie projektu Xcode

Po włączeniu płatności i utworzeniu klucza interfejsu API możesz skonfigurować projekt Xcode, którego używasz do tworzenia aplikacji.

Informacje o wersji są dostępne dla każdej wersji.

Krok 1. Zainstaluj wymagane oprogramowanie

Aby utworzyć projekt przy użyciu pakietu Maps SDK na iOS, musisz pobrać i zainstalować:

  • Xcode w wersji 15.0 lub nowszej

Krok 2. Utwórz projekt Xcode i zainstaluj pakiet Maps SDK na iOS

Menedżer pakietów Swift

Pakiet SDK Map na iOS można zainstalować za pomocą menedżera pakietów Swift. Aby dodać pakiet SDK, usuń wszystkie istniejące zależności Maps SDK na iOS.

Aby dodać pakiet SDK do nowego lub istniejącego projektu:

  1. Otwórz Xcode project lub workspace i kliknij Plik > Dodaj zależności pakietu.
  2. Wpisz https://github.com/googlemaps/ios-maps-sdk jako adres URL, naciśnij Enter, aby zaimportować pakiet, i kliknij „Dodaj pakiet”.
  3. Aby zainstalować określony pakiet version, ustaw pole Reguła zależności na jedną z opcji opartych na wersji. W przypadku nowych projektów zalecamy podanie najnowszej wersji i skorzystanie z opcji „Dokładna wersja”. Gdy skończysz, kliknij „Dodaj pakiet”.

Aby zaktualizować package w istniejącym projekcie:

  1. Jeśli przechodzisz z wersji starszej niż 9.0.0, musisz usunąć te zależności: GoogleMapsBase, GoogleMapsCoreGoogleMapsM4B. Nie usuwaj zależności dla GoogleMaps. Więcej informacji znajdziesz w informacjach o wersji 9.0.0.

    W ustawieniach konfiguracji projektu Xcode znajdź Frameworki, biblioteki i zawartość osadzona. Użyj znaku minusa(-), aby usunąć te elementy:

    • GoogleMapsBase (dotyczy tylko uaktualnień z wersji starszych niż 9.0.0)
    • GoogleMapsCore (dotyczy tylko uaktualnień z wersji starszych niż 9.0.0)
    • GoogleMapsM4B (dotyczy tylko uaktualnień z wersji starszych niż 9.0.0)
  2. W Xcode wybierz „Plik > Pakiety > Zaktualizuj do najnowszych wersji pakietów”.
  3. Aby sprawdzić instalację, otwórz sekcję Zależność pakietuNawigatorze projektu i sprawdź pakiet oraz jego wersję.

Aby usunąć istniejące zależności Maps SDK na iOS dodane za pomocą funkcji CocoaPods, wykonaj te czynności:

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

Aby usunąć istniejący pakiet SDK Map Google na iOS zainstalowany ręcznie, wykonaj te czynności:
  1. W ustawieniach konfiguracji projektu Xcode znajdź Frameworki, biblioteki i zawartość osadzona. Użyj znaku minusa(-), aby usunąć te elementy:
    • GoogleMaps
    • GoogleMapsBase (dotyczy tylko instalacji w wersjach starszych niż 9.2.0)
    • GoogleMapsCore (dotyczy tylko instalacji w wersjach starszych niż 9.2.0)
    • GoogleMapsM4B (dotyczy tylko instalacji w wersjach starszych niż 9.0.0)
  2. W najwyższym katalogu projektu Xcode usuń pakiet GoogleMaps.

Instalacja ręczna

Z tego przewodnika dowiesz się, jak ręcznie dodać do projektu XCFramework zawierający pakiet SDK Map na iOS i skonfigurować ustawienia kompilacji w Xcode. XCFramework to pakiet binarny, którego można używać na wielu platformach, w tym na maszynach z procesorami Apple Silicon.

  1. Pobierz te pliki binarne i zasoby pakietu SDK:
  2. Wypakuj pliki, aby uzyskać dostęp do XCFrameworks i zasobów.
  3. Jeśli nie masz jeszcze projektu Xcode, utwórz go i zapisz na komputerze lokalnym. Jeśli dopiero zaczynasz zajmować się programowaniem na iOS:
    1. Utwórz nowy projekt.
    2. Wybierz szablon iOS > Aplikacja.
    3. Na ekranie opcji projektu:
      1. Wpisz nazwę projektu.
      2. Zapisz wartość pola Identyfikator pakietu. Możesz użyć tej wartości, aby ograniczyć klucz interfejsu API.
      3. Ustaw Interfejs projektu na Storyboard.
      4. Ustaw Język na Swift lub Objective-C.
  4. Otwórz kartę Ogólne. Przeciągnij ten XCFramework do projektu w sekcji Frameworky, biblioteki i osadzony zawartość. Pamiętaj, aby wybrać Nie umieszczaj:
    • GoogleMaps.xcframework
  5. Skopiuj GoogleMaps.bundle z katalogu GoogleMapsResources, który został pobrany do katalogu najwyższego poziomu projektu Xcode. Gdy pojawi się odpowiedni komunikat, wybierz Skopiuj elementy do folderu grupy docelowej.
  6. W Nawigatorze projektów wybierz projekt, a potem element docelowy aplikacji.
  7. Otwórz kartę Etapy kompilacji dla docelowego środowiska aplikacji. W sekcji Połącz plik binarny z bibliotekami dodaj te frameworki i biblioteki:
    • Accelerate.framework
    • Contacts.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 (tylko jeśli używasz OpenGL)
    • QuartzCore.framework
    • SystemConfiguration.framework
    • UIKit.framework
  8. Wybierz projekt, a nie konkretny element docelowy, i otwórz kartę Ustawienia kompilacji. W sekcji Łączenie – ogólne –> Inne flagi linkera dodaj -ObjC do opcji „Debugowanie” i „Wersja produkcyjna”. Jeśli te ustawienia są niewidoczne, na pasku Ustawienia kompilacji zmień filtr z Podstawowe na Wszystkie.

  9. Aby zainstalować pakiet SDK Miejsc na iOS XCFramework, zapoznaj się z artykułem Początkujący: pakiet SDK Miejsc na iOS.

CocoaPods

Pakiet Maps SDK na iOS jest dostępny jako pakiet CocoaPods. CocoaPods to menedżer zależności typu open source do projektów Cocoa w Swift i Objective-C.

Jeśli nie masz jeszcze zainstalowanego narzędzia CocoaPods, zainstaluj je w systemie macOS, wykonując w terminalu podane niżej polecenie. Szczegółowe informacje znajdziesz w Przewodniku wdrożeniowym CocoaPods.

sudo gem install cocoapods

Utwórz Podfile dla pakietu Maps SDK na iOS i użyj go do zainstalowania interfejsu API i jego zależności:

  1. Jeśli nie masz jeszcze projektu Xcode, utwórz go i zapisz na komputerze lokalnym. Jeśli dopiero zaczynasz zajmować się programowaniem na iOS:
    1. Utwórz nowy projekt.
    2. Wybierz szablon iOS > Aplikacja.
    3. Na ekranie opcji projektu:
      1. Wpisz nazwę projektu.
      2. Zapisz wartość pola Identyfikator pakietu. Możesz użyć tej wartości, aby ograniczyć klucz interfejsu API.
      3. Ustaw Interfejs projektu na Storyboard.
      4. Ustaw Język na Swift lub Objective-C.
  2. W katalogu projektu utwórz plik o nazwie Podfile. Ten plik definiuje zależności projektu.
  3. Zmodyfikuj Podfile i dodaj zależności wraz z ich wersjami. Oto przykład, który zawiera zależność potrzebną do pakietu SDK Maps na iOS:
    source 'https://github.com/CocoaPods/Specs.git'
    
    platform :ios, '15.0'
    
    target 'YOUR_APPLICATION_TARGET_NAME_HERE' do
      pod 'GoogleMaps', '9.2.0'
    end
    
    Regularnie uruchamiaj pod outdated, aby wykrywać nowsze wersje i upewnić się, że zawsze korzystasz z najnowszej. W razie potrzeby zaktualizuj go do najnowszej wersji.
  4. Zapisz Podfile.
  5. Otwórz terminal i przejdź do katalogu zawierającego plik Podfile:

    cd <path-to-project>
  6. Uruchom polecenie pod install. Spowoduje to zainstalowanie interfejsów API określonych w Podfile wraz z ich zależnościami.

    pod install
  7. Zamknij Xcode, a następnie otwórz (kliknij dwukrotnie) plik .xcworkspace projektu, aby uruchomić Xcode. Od tego momentu do otwierania projektu musisz używać pliku .xcworkspace.

Aby zaktualizować interfejs API w istniejącym projekcie:

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

Krok 3. Dodaj klucz interfejsu API do projektu

W sekcji Uzyskiwanie klucza interfejsu API wygenerowałeś/wygenerowałaś klucz interfejsu API dla aplikacji. Teraz dodaj ten klucz do projektu Xcode.

W podanych niżej przykładach zastąp YOUR_API_KEY swoim kluczem API.

Swift

Aby dodać klucz interfejsu API do AppDelegate.swift, wykonaj te czynności:

  1. Dodaj tę instrukcję importu:
    import GoogleMaps
  2. Dodaj do metody application(_:didFinishLaunchingWithOptions:) te informacje, korzystając z klucza interfejsu API:
    GMSServices.provideAPIKey("YOUR_API_KEY")
  3. Jeśli używasz też interfejsu Places API, dodaj klucz ponownie w ten sposób:
    GMSPlacesClient.provideAPIKey("YOUR_API_KEY")

Objective-C

Aby dodać klucz interfejsu API do AppDelegate.m, wykonaj te czynności:

  1. Dodaj tę instrukcję importu:
    @import GoogleMaps;
  2. Dodaj do metody application:didFinishLaunchingWithOptions: te informacje, korzystając z klucza interfejsu API:
    [GMSServices provideAPIKey:@"YOUR_API_KEY"];
  3. Jeśli używasz też interfejsu Places API, dodaj klucz ponownie w ten sposób:
    [GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];

Krok 4 (opcjonalny). Sprawdź plik manifestu prywatności Apple

Firma Apple wymaga, aby w App Store były dostępne informacje o ochronie prywatności w aplikacji. Aby uzyskać więcej informacji, odwiedź stronę z informacjami o ochronie prywatności w Apple App Store.

Plik manifestu dotyczący prywatności Apple jest dołączony do pakietu zasobów pakietu SDK. Aby sprawdzić, czy plik manifestu prywatności został uwzględniony, i przeanalizować jego zawartość, utwórz archiwum aplikacji i wygeneruj raport o prywatności na podstawie tego archiwum.

Krok 5 (opcjonalnie): zadeklaruj schematy adresów URL używane przez interfejs API

Począwszy od iOS 9 i Xcode 7 aplikacje mogą deklarować schematy URL, które mają otwierać, przez określenie tych schematów w pliku Info.plist aplikacji. Gdy użytkownik kliknie logo Google na mapie, pakiet SDK Maps na iOS otwiera aplikację mobilną Mapy Google, dlatego Twoja aplikacja może zadeklarować odpowiednie schematy URL.

Aby zadeklarować schematy adresów URL używane przez Maps SDK na iOS, dodaj do pliku Info.plist te wiersze:

 <key>LSApplicationQueriesSchemes</key>
 <array>
        <string>googlechromes</string>
        <string>comgooglemaps</string>
    </array>

Na tym zrzucie ekranu widać konfigurację w interfejsie Xcode:

Konfiguracja `LSApplicationQueriesSchemes` w Xcode

Bez tej deklaracji po kliknięciu logo Google na mapie mogą wystąpić te 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 wyeliminować te błędy, dodaj deklarację do pliku Info.plist.

Co dalej?

Teraz, gdy masz klucz interfejsu API i projekt Xcode, możesz tworzyć i uruchamiać aplikacje. Pakiet SDK do nawigacji na iOS zawiera wiele samouczków i przykładowych aplikacji, które ułatwią Ci rozpoczęcie korzystania z usługi. Więcej informacji znajdziesz w tych artykułach: