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.

W przypadku każdej wersji dostępne są informacje o wersji.

Krok 1. Zainstaluj wymagane oprogramowanie

Aby utworzyć projekt za pomocą pakietu Maps SDK na iOS, musisz pobrać i zainstalować:

  • Xcode w wersji 14.0 lub nowszej.

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

Menedżer pakietów Swift

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

Aby dodać pakiet SDK do nowego lub istniejącego projektu, wykonaj te czynności:

  1. Otwórz plik Xcode project lub workspace i kliknij Plik > Dodaj zależności pakietów.
  2. Wpisz URL https://github.com/googlemaps/ios-maps-sdk, naciśnij Enter, by pobrać pakiet, a następnie kliknij „Dodaj pakiet”.
  3. Aby zainstalować określony version, w polu Reguła zależności ustaw jedną z opcji opartych na wersji. W przypadku nowych projektów zalecamy określenie najnowszej wersji i użycie opcji „Dokładna wersja”. Gdy skończysz, kliknij „Dodaj pakiet”.
  4. W oknie Wybierz produkty w pakiecie sprawdź, czy GoogleMaps, GoogleMapsBase i GoogleMapsCore zostaną dodane do wyznaczonego miejsca docelowego main. Gdy skończysz, kliknij „Dodaj pakiet”.
  5. Aby sprawdzić instalację, przejdź do panelu General środowiska docelowego. Zainstalowane pakiety powinny być widoczne w sekcji Frameworks, Biblioteki i Umieszczone treści. Możesz też wyświetlić sekcję „Zależności pakietów” w aplikacji „Project Navigator”, aby sprawdzić pakiet i jego wersję.

Aby zaktualizować package w istniejącym projekcie, wykonaj te czynności:

  1. W Xcode wybierz kolejno „File” (Plik) > Packages (Pakiety) > Update To Last Package Versions (Aktualizuj do najnowszych wersji pakietów).
  2. Aby sprawdzić instalację, przejdź do sekcji Zależności pakietów w Project Navigator i sprawdź pakiet i jego wersję.

Aby usunąć zależności pakietu 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 Xcode workspace, jeśli nie używasz ich do niczego innego niż CocoaPods.

Aby usunąć ręcznie zainstalowany pakiet Maps SDK na iOS, wykonaj te czynności:
  1. W ustawieniach konfiguracji projektu Xcode znajdź Frameworks, Libraries, and Embedded Content. Za pomocą znaku minusa(-) usuń tę platformę:
    • GoogleMaps.xcframework
    • GoogleMapsBase.xcframework
    • GoogleMapsCore.xcframework
  2. Z katalogu najwyższego poziomu projektu Xcode usuń pakiet GoogleMaps.

CocoaPods

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

Jeśli nie masz jeszcze narzędzia CocoaPods, zainstaluj je w macOS, uruchamiając z terminala to polecenie. Szczegółowe informacje znajdziesz we wprowadzeniu do CocoaPods.

sudo gem install cocoapods

Utwórz obiekt Podfile dla pakietu SDK Map Google 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 teraz i zapisz na komputerze lokalnym. Jeśli dopiero zaczynasz tworzyć aplikacje na iOS:
    1. Utwórz nowy projekt.
    2. Wybierz szablon iOS > Aplikacja.
    3. Na ekranie opcji projektu:
      1. Wypełnij pole Nazwa projektu.
      2. Zapisz wartość w polu Identyfikator pakietu. Możesz użyć tej wartości, aby ograniczyć swój klucz interfejsu API poniżej.
      3. Ustaw Interfejs projektu na Scenorys.
      4. Jako Language ustaw Swift lub Objective-C.
  2. W katalogu projektu utwórz plik o nazwie Podfile. Ten plik określa zależności Twojego projektu.
  3. Edytuj Podfile i dodaj zależności wraz z ich versions. Oto przykład, który przedstawia zależność wymaganą w pakiecie SDK Map Google na iOS:
    source 'https://github.com/CocoaPods/Specs.git'
    
    platform :ios, '14.0'
    
    target 'YOUR_APPLICATION_TARGET_NAME_HERE' do
      pod 'GoogleMaps', '8.4.0'
    end
    
    Pamiętaj, aby regularnie uruchamiać pod outdated, aby wykrywać, kiedy dostępna jest nowsza wersja. Dzięki temu będziesz zawsze mieć najnowszą wersję. W razie potrzeby uaktualnij aplikację 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 interfejsów API określonych w: Podfile oraz wszelkich zależności, jakie mogą one mieć.

    pod install
  7. Zamknij Xcode, a następnie otwórz (dwukrotnie) plik .xcworkspace swojego projektu, aby uruchomić Xcode. Od tej pory projekt będzie można otwierać tylko 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, w którym znajduje się Podfile.
  2. Uruchom polecenie pod update. Spowoduje to zaktualizowanie do najnowszej wersji wszystkich interfejsów API określonych w: Podfile.

Instalacja ręczna

Z tego przewodnika dowiesz się, jak ręcznie dodać do projektu XCFrameworks zawierające pakiet Maps SDK 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 korzystających z Apple Silicon.
  1. Pobierz te pliki binarne i pliki zasobów pakietu SDK:
  2. Rozpakuj skompresowane pliki, aby uzyskać dostęp do XCFrameworks i zasobów.
  3. Jeśli nie masz jeszcze projektu Xcode, utwórz go teraz i zapisz na komputerze lokalnym. Jeśli dopiero zaczynasz tworzyć aplikacje na iOS:
    1. Utwórz nowy projekt.
    2. Wybierz szablon iOS > Aplikacja.
    3. Na ekranie opcji projektu:
      1. Wypełnij pole Nazwa projektu.
      2. Zapisz wartość w polu Identyfikator pakietu. Możesz użyć tej wartości, aby ograniczyć swój klucz interfejsu API poniżej.
      3. Ustaw Interfejs projektu na Scenorys.
      4. Jako Language ustaw Swift lub Objective-C.
  4. Otwórz kartę Ogólne. Przeciągnij ten element XCFrameworks do swojego projektu w sekcji Frameworks, Biblioteki i Umieszczone treści. Pamiętaj, aby w przypadku każdego elementu XCFramework wybrać Nie umieszczaj:
    • GoogleMaps.xcframework
    • GoogleMapsBase.xcframework
    • GoogleMapsCore.xcframework
  5. Skopiuj pobrany plik GooglePlaces.bundle z GooglePlacesResources do katalogu najwyższego poziomu projektu Xcode. Gdy pojawi się prośba, wybierz Skopiuj elementy do folderu grupy docelowej.
  6. Wybierz projekt z Nawigatora projektów i wybierz miejsce docelowe aplikacji.
  7. Otwórz kartę Etapy kompilacji dla środowiska docelowego aplikacji. W sekcji Połącz pliki binarne z bibliotekami dodaj te 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
    • QuartzCore.framework
    • SystemConfiguration.framework
    • UIKit.framework
  8. Wybierz projekt, a nie konkretny cel, i otwórz kartę Ustawienia kompilacji. W sekcji Łączenie - Ogólne -> Inne flagi łączące dodaj -ObjC w polach „Debuguj” i „Opublikuj”. Jeśli te ustawienia nie są widoczne, zmień filtr na pasku Ustawienia kompilacji z Podstawowe na Wszystkie.

  9. Aby dowiedzieć się, jak zainstalować pakiet Places SDK na iOS XCFramework, przeczytaj, jak zacząć korzystać z pakietu Places SDK na iOS.

Krok 3. Dodaj do projektu klucz interfejsu API

W sekcji Uzyskiwanie klucza interfejsu API udało Ci się wygenerować klucz interfejsu API dla swojej aplikacji. Teraz dodaj ten klucz do projektu Xcode.

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

for more information.

Swift

Dodaj klucz interfejsu API do urządzenia AppDelegate.swift, wykonując te czynności:

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

Objective-C

Dodaj klucz interfejsu API do urządzenia AppDelegate.m, wykonując te czynności:

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

Krok 4. 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óre powinny być otwierane, określając schematy w pliku Info.plist aplikacji. Pakiet SDK Map Google na iOS otwiera aplikację mobilną Mapy Google, gdy użytkownik kliknie logo Google na mapie, dzięki czemu aplikacja może zadeklarować odpowiednie schematy adresów URL.

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

LSApplicationQueriesSchemes googlechromes comgooglemaps

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

Konfiguracja LSApplicationQueriesSchemes w Xcode

Jeśli nie prześlesz powyższej deklaracji, po kliknięciu logo Google na mapie mogą wystąpić te błędy:

-canOpenURL: niepowodzenie w przypadku adresu URL: "comgooglemaps://" - błąd: "Ta aplikacja nie ma uprawnień do wysyłania zapytań dotyczących schematu comgooglemaps" -canOpenURL: niepowodzenie w przypadku adresu URL: "googlechromes://" - błąd: "Ta aplikacja nie ma uprawnień do wysyłania zapytań dotyczących schematu googlechromes"

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

Co dalej?

Masz już klucz interfejsu API i projekt Xcode, możesz więc tworzyć i uruchamiać aplikacje. Pakiet Navigation SDK dla iOS zawiera wiele samouczków i przykładowych aplikacji, które pomogą Ci zacząć. Więcej informacji: