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 poszczególnych wersjach są dostępne w informacjach o wersji.

Krok 1. Zainstaluj wymagane oprogramowanie

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

  • Xcode wersja 14.0 lub nowsza,
  • Kawopody

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

Aby zainstalować interfejs API w nowym projekcie, wykonaj te czynności:

Korzystanie z CocoaPods

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

Jeśli nie masz jeszcze narzędzia CocoaPods, zainstaluj je w systemie macOS, uruchamiając z terminala poniższe polecenie. Szczegółowe informacje znajdziesz w przewodniku dla początkujących.

sudo gem install cocoapods

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

  1. Jeśli nie masz jeszcze projektu Xcode, utwórz go 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. Wpisz nazwę projektu.
      2. Zapisz wartość w polu Identyfikator pakietu. Możesz użyć tej wartości, aby ograniczyć klucz interfejsu API poniżej.
      3. Ustaw Interfejs projektu na Scenorys.
      4. Jako Język ustaw Swift lub Objective-C.
  2. Utwórz w katalogu projektu plik o nazwie Podfile. Ten plik określa zależności projektu.
  3. Edytuj Podfile i dodaj zależności wraz z ich versions. Oto przykład ilustrujący 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.3.1'
    end
    
    Pamiętaj o regularnym uruchamianiu pod outdated, aby wykrywać, kiedy dostępna jest nowsza wersja. Dzięki temu masz zawsze dostęp do najnowszej wersji. W razie potrzeby przejdź na najnowszą wersję.
  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 obiekcie Podfile wraz ze wszystkimi zależnościami, jakie mogą mieć.

    pod install
  7. Zamknij Xcode, a następnie otwórz (dwukrotnie kliknij) plik .xcworkspace swojego projektu, aby uruchomić Xcode. Od tej pory projekt 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 zawierającego Podfile.
  2. Uruchom polecenie pod update. Spowoduje to zaktualizowanie do najnowszej wersji wszystkich interfejsów API określonych w: Podfile.

Instalowanie ręczne

Ten przewodnik pokazuje, jak ręcznie dodać do projektu komponent XCFrameworks zawierający 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 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. Wpisz nazwę projektu.
      2. Zapisz wartość w polu Identyfikator pakietu. Możesz użyć tej wartości, aby ograniczyć klucz interfejsu API poniżej.
      3. Ustaw Interfejs projektu na Scenorys.
      4. Jako Język ustaw Swift lub Objective-C.
  4. Przeciągnij ten element XCFrameworks do projektu do sekcji Frameworks, Libraries and Embedded Content. Pamiętaj, aby dla każdego elementu XCFramework wybrać opcję Nie umieszczaj:
    • GoogleMaps.xcframework
    • GoogleMapsBase.xcframework
    • GoogleMapsCore.xcframework
    • (Tylko klienci korzystający z abonamentu Premium) GoogleMapsM4B.xcframework
  5. Przeciągnij plik GoogleMaps.bundle z pobranego GoogleMapsResources do katalogu najwyższego poziomu swojego projektu Xcode. Gdy pojawi się odpowiedni komunikat, sprawdź, czy jest zaznaczona opcja Kopiuj elementy w razie potrzeby.
  6. Wybierz projekt z Nawigatora projektów i wskaż miejsce docelowe aplikacji.
  7. Otwórz kartę Etapy kompilacji dla miejsca docelowego aplikacji oraz w sekcji Połącz plik binarny z bibliotekami, a następnie dodaj te platformy i biblioteki:
    • Accelerate.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 Inne oznaczenia łączące dodaj -ObjC. 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 Uzyskaj klucz interfejsu API wygenerowaliśmy klucz interfejsu API dla swojej aplikacji. Teraz dodaj ten klucz do projektu Xcode.

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

for more information.

Swift

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

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

Objective-C

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

  1. Dodaj tę instrukcję importu:
    @import GoogleMaps;
  2. Dodaj do metody application:didFinishLaunchingWithOptions: ten kod za pomocą klucza interfejsu API:
    [GMSServices provideAPIKey:@"YOUR_API_KEY"];
  3. Jeśli korzystasz też z interfejsu Places API, dodaj klucz ponownie w sposób pokazany tutaj:
    [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

Od iOS 9 i Xcode 7 aplikacje mogą zadeklarować schematy adresów URL, które mają 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 interfejsu Info.plist te wiersze:

LSApplicationQueriesSchemes googlechromes comgooglemaps

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

Konfiguracja LSApplicationQuerySchemes w Xcode

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

–canOpenURL: błąd

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

Co dalej

Gdy masz już klucz interfejsu API i projekt Xcode, możesz tworzyć i uruchamiać aplikacje. Pakiet SDK Map Google na iOS zawiera wiele samouczków i przykładowych aplikacji, które pomogą Ci zacząć. Więcej informacji: