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 Maps SDK na iOS, musisz pobrać i zainstalować:

  • Xcode, wersji 15.0 lub nowszej.

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

Menedżer pakietów Swift

Pakiet Maps SDK na iOS można zainstalować za pomocą: Menedżer pakietów Swift. Aby dodać pakiet SDK, upewnij się, że masz usunięto wszystkie zależności istniejących pakietów SDK Maps na iOS.

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-maps-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ź GoogleMaps (w przypadku wersji starszych niż 9.0.0 sprawdź, GoogleMaps, GoogleMapsBase i GoogleMapsCore) zostanie dodany do wyznaczonego celu 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 Maps SDK na iOS 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 ręcznie usunąć zainstalowany ręcznie istniejący pakiet SDK Maps 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
    • GoogleMapsBase (tylko do instalacji wcześniej niż w wersji 9.0.0)
    • GoogleMapsCore (tylko do instalacji wcześniej niż w wersji 9.0.0)
    • GoogleMapsM4B (tylko do instalacji wcześniej niż w wersji 9.0.0)
  2. W katalogu najwyższego poziomu projektu Xcode usuń GoogleMaps w pakiecie.

CocoaPods

Pakiet SDK Maps 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: Wprowadzenie do CocoaPods.

sudo gem install cocoapods

Utwórz i użyj pakietu SDK Maps na iOS Podfile 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 versions. Oto przykład zawierający zależność potrzebną do wywołania Maps SDK na iOS:
    source 'https://github.com/CocoaPods/Specs.git'
    
    platform :ios, '15.0'
    
    target 'YOUR_APPLICATION_TARGET_NAME_HERE' do
      pod 'GoogleMaps', '8.4.0'
    end
    
    Regularnie uruchamiaj usługę pod outdated, aby wykryć, że jest dostępna nowsza wersja , by mieć pewność, że zawsze korzystasz z najnowszej 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 Interfejsy API określone w Podfile wraz z zależnościami mogą mieć dostęp do treści.

    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

Z tego przewodnika dowiesz się, jak ręcznie dodać do projektu środowisko XCFrameworks zawierające pakiet SDK Maps na iOS i skonfigurować ustawienia kompilacji w Xcode. XCFramework to pakiet binarny, którego możesz używać na wielu platformach, w tym na komputerach korzystających z Apple Silicon.
  1. Pobierz te pliki binarne i pliki zasobów pakietu SDK:
  2. Rozpakuj pliki, aby uzyskać dostęp do zasobów i elementów XCFrameworks.
  3. 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.
  4. Otwórz kartę Ogólne. Przeciągnij do projektu te tagi XCFrameworks w sekcji Ramki, biblioteki i umieszczone treści. Upewnij się, wybierz Do Not Embed (Nie umieszczaj) dla każdego elementu XCFramework:
    • GoogleMaps.xcframework
    • GoogleMapsBase.xcframework
    • GoogleMapsCore.xcframework
  5. Skopiuj GoogleMaps.bundle z GoogleMapsResources. pobrane do katalogu najwyższego poziomu projektu Xcode. Wybierz Skopiuj elementy do folderu grupy docelowej, gdy pojawi się odpowiedni komunikat.
  6. Wybierz projekt w narzędziu Project Navigator, a następnie jako cel aplikacji.
  7. Otwórz kartę Etapy kompilacji dla środowiska docelowego aplikacji. W sekcji Połącz plik binarny z bibliotekami dodaj: platformy 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 w trybie OpenGL)
    • QuartzCore.framework
    • SystemConfiguration.framework
    • UIKit.framework
  8. Wybierz projekt zamiast konkretnego miejsca docelowego i otwórz Na karcie Build Settings (Ustawienia kompilacji). W sekcji Łączenie – Ogólne -> Inny tag łączący Flagi, dodaj -ObjC do „Debugowanie”. i „Wycofaj”. Jeśli ustawienia nie są widoczne, zmień filtr na pasku Ustawienia kompilacji z Podstawowe na Wszystkie.

  9. Aby zainstalować pakiet Places SDK dla iOS XCFramework, zobacz Pierwsze kroki używając pakietu Places SDK na iOS.

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

W sekcji Uzyskaj klucz interfejsu API możesz wygenerował klucz interfejsu API dla Twojej aplikacji. Teraz dodaj ten klucz do projektu Xcode.

W poniższych przykładach zastąp YOUR_API_KEY swoim kluczem interfejsu API.

Swift

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

  1. Dodaj instrukcję importu:
    import GoogleMaps
  2. Dodaj te elementy do: application(_:didFinishLaunchingWithOptions:) za pomocą klucza interfejsu API:
    GMSServices.provideAPIKey("YOUR_API_KEY")
  3. Jeśli korzystasz również z interfejsu Places API, dodaj klucz ponownie, jak pokazano poniżej:
    GMSPlacesClient.provideAPIKey("YOUR_API_KEY")

Objective-C

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

  1. Dodaj instrukcję importu:
    @import GoogleMaps;
  2. Dodaj te elementy do: application:didFinishLaunchingWithOptions: za pomocą klucza interfejsu API:
    [GMSServices provideAPIKey:@"YOUR_API_KEY"];
  3. Jeśli korzystasz również z interfejsu Places API, dodaj klucz ponownie, jak pokazano poniżej:
    [GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];

Krok 5. Dodaj mapę

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 options = GMSMapViewOptions()
        options.camera = GMSCameraPosition.camera(withLatitude: -33.86, longitude: 151.20, zoom: 6.0)
        options.frame = self.view.bounds

        let mapView = GMSMapView(options: options)
        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.
  GMSMapViewOptions *options = [[GMSMapViewOptions alloc] init];
  options.camera = [GMSCameraPosition cameraWithLatitude:-33.8683
                                                        longitude:151.2086
                                                             zoom:6];
  options.frame = self.view.bounds;
  GMSMapView *mapView = [[GMSMapView alloc] initWithOptions:options];

  [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

Krok 5 (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órą zamierzasz otworzyć, określając schematy w pliku Info.plist aplikacji. Maps SDK na iOS otwiera aplikację mobilną Mapy Google, gdy użytkownik kliknie reklamę. logo Google na mapie, tak aby aplikacja mogła zadeklarować odpowiedni adres URL. przedsięwzięcia.

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

LSApplicationQueriesSchemes Googlechrome comgooglemaps

Poniższy zrzut ekranu przedstawia konfigurację w interfejsie użytkownika Xcode:

Konfiguracja LSApplicationQuerySchemes w
Xcode

Bez tej deklaracji mogą wystąpić te błędy, gdy użytkownik kliknie reklamę logo Google na mapie:

  • -canOpenURL: błąd dla adresu URL: "comgooglemaps://" - błąd: „Ta aplikacja nie jest zezwolono na wysyłanie zapytań o schemat comgooglemaps”
  • -canOpenURL: błąd dla adresu URL „googlechromes://” - błąd: „Ta aplikacja nie jest zezwolono na wysyłanie zapytań o schemat googlechromes

Aby wyeliminować te błędy, dodaj deklarację do Info.plist.

Co dalej?

Po utworzeniu klucza interfejsu API i projektu Xcode możesz tworzyć i uruchamiać aplikacje. Pakiet Navigation SDK na iOS zawiera wiele samouczków i przykładowych aplikacji, które pomogą Ci pierwsze kroki. Więcej informacji: