После включения выставления счетов и создания ключа API вы готовы настроить проект Xcode, который вы используете для разработки своего приложения.
Примечания к выпуску доступны для каждого выпуска.
Шаг 1. Установите необходимое программное обеспечение
Чтобы создать проект с помощью Maps SDK для iOS, необходимо скачать и установить:
- Xcode версии 14.0 или новее
Шаг 2. Создайте проект Xcode и установите Maps SDK для iOS.
Чтобы установить API в новый проект, выполните следующие действия:
Используйте CocoaPods
Maps SDK для iOS доступен в виде модуля CocoaPods . CocoaPods — это менеджер зависимостей с открытым исходным кодом для проектов Swift и Objective-C Cocoa.
Если у вас еще нет инструмента CocoaPods, установите его в macOS, выполнив следующую команду из терминала. Подробности см. в руководстве по началу работы с CocoaPods .
sudo gem install cocoapods
Создайте Podfile
для Maps SDK для iOS и используйте его для установки API и его зависимостей:
- Если у вас еще нет проекта Xcode, создайте его сейчас и сохраните на своем локальном компьютере. Если вы новичок в разработке для iOS:
- Создайте новый проект.
- Выберите iOS > Шаблон приложения .
- На экране опций проекта:
- Введите название проекта .
- Запишите значение поля идентификатора пакета . Вы можете использовать это значение, чтобы ограничить свой ключ API ниже.
- Установите для интерфейса проекта значение Storyboard .
- Установите язык Swift или Objective-C .
- Создайте файл с именем
Podfile
в каталоге вашего проекта. Этот файл определяет зависимости вашего проекта. - Отредактируйте
Podfile
и добавьте свои зависимости вместе с их версиями . Вот пример, который включает зависимость, необходимую для Maps SDK для iOS:source 'https://github.com/CocoaPods/Specs.git' platform :ios, '14.0' target 'YOUR_APPLICATION_TARGET_NAME_HERE' do pod 'GoogleMaps', '8.3.0' end
Обязательно регулярно запускайтеpod outdated
, чтобы обнаружить появление более новой версии и всегда использовать последнюю версию. При необходимости обновитесь до последней версии . - Сохраните
Podfile
. Откройте терминал и перейдите в каталог, содержащий
Podfile
:cd <path-to-project>
Запустите команду
pod install
. При этом будут установлены API, указанные вPodfile
, вместе со всеми зависимостями, которые они могут иметь.pod install
Закройте Xcode, а затем откройте (дважды щелкните) файл
.xcworkspace
вашего проекта, чтобы запустить Xcode. С этого момента вы должны использовать файл.xcworkspace
для открытия проекта.
Чтобы обновить API для существующего проекта, выполните следующие действия:
- Откройте терминал и перейдите в каталог проекта, содержащий
Podfile
. - Запустите команду
pod update
. Это обновит все API, указанные вPodfile
, до последней версии.
Установить вручную
В этом руководстве показано, как вручную добавить XCFrameworks, содержащий Maps SDK для iOS, в ваш проект и настроить параметры сборки в Xcode. XCFramework — это двоичный пакет, который можно использовать на нескольких платформах, включая машины, использующие Apple Silicon .- Загрузите следующие двоичные файлы SDK и файлы ресурсов:
- Распакуйте заархивированные файлы, чтобы получить доступ к XCFrameworks и ресурсам.
- Если у вас еще нет проекта Xcode, создайте его сейчас и сохраните на своем локальном компьютере. Если вы новичок в разработке для iOS:
- Создайте новый проект.
- Выберите iOS > Шаблон приложения .
- На экране опций проекта:
- Введите название проекта .
- Запишите значение поля идентификатора пакета . Вы можете использовать это значение, чтобы ограничить свой ключ API ниже.
- Установите для интерфейса проекта значение Storyboard .
- Установите язык Swift или Objective-C .
- Перетащите следующие файлы XCFrameworks в свой проект в разделе «Платформы, библиотеки и встроенный контент» . Обязательно выберите «Не встраивать» для каждого XCFramework:
-
GoogleMaps.xcframework
-
GoogleMapsBase.xcframework
-
GoogleMapsCore.xcframework
- (Только для клиентов Премиум-плана)
GoogleMapsM4B.xcframework
-
- Перетащите
GoogleMaps.bundle
из загруженного вами GoogleMapsResources в каталог верхнего уровня вашего проекта Xcode. При появлении запроса убедитесь, что выбран параметр «Копировать элементы при необходимости» . - Выберите свой проект в Навигаторе проектов и выберите цель своего приложения.
- Откройте вкладку «Фазы сборки» для целевого приложения и в Link Binary with Libraries добавьте следующие платформы и библиотеки:
-
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
-
Выберите свой проект, а не конкретную цель, и откройте вкладку «Настройки сборки» . В разделе «Другие флаги компоновщика» добавьте
-ObjC
. Если эти настройки не отображаются, измените фильтр на панели «Настройки сборки» с «Базовый» на «Все» .Чтобы установить Places SDK для iOS XCFramework, см. раздел Начало работы с Places SDK для iOS .
Шаг 3. Добавьте ключ API в проект.
В разделе «Получение ключа API » вы создали ключ API для своего приложения. Теперь добавьте этот ключ в свой проект Xcode.
В следующих примерах замените YOUR_API_KEY
своим ключом API.
Чтобы получить больше информации.
Быстрый
Добавьте свой ключ API в AppDelegate.swift
следующим образом:
- Добавьте следующий оператор импорта:
import GoogleMaps
- Добавьте в свой метод
application(_:didFinishLaunchingWithOptions:)
следующее, используя свой ключ API:GMSServices.provideAPIKey("YOUR_API_KEY")
- Если вы также используете Places API, добавьте свой ключ еще раз, как показано здесь:
GMSPlacesClient.provideAPIKey("YOUR_API_KEY")
Цель-C
Добавьте свой ключ API в свой AppDelegate.m
следующим образом:
- Добавьте следующий оператор импорта:
@import GoogleMaps;
- Добавьте в свое
application:didFinishLaunchingWithOptions:
используя свой ключ API:[GMSServices provideAPIKey:@"YOUR_API_KEY"];
- Если вы также используете Places API, добавьте свой ключ еще раз, как показано здесь:
[GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];
Шаг 4. Добавьте карту
Быстрый
/* * 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 } }
Цель-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
Шаг 5 (необязательно). Объявите схемы URL-адресов, используемые API.
Начиная с iOS 9 и Xcode 7, приложения могут объявлять схемы URL-адресов, которые они собираются открыть, указав схемы в файле Info.plist
приложения. Maps SDK для iOS открывает мобильное приложение Google Maps, когда пользователь щелкает логотип Google на карте, и поэтому ваше приложение может объявить соответствующие схемы URL-адресов.
Чтобы объявить схемы URL-адресов, используемые Maps SDK для iOS, добавьте в свой Info.plist
следующие строки:
На следующем снимке экрана показана конфигурация пользовательского интерфейса Xcode:
Без приведенного выше объявления могут возникнуть следующие ошибки, когда пользователь нажимает логотип Google на карте:
-canOpenURL: не удалось для URL: "comgooglemaps://" - ошибка: "Этому приложению не разрешено запрашивать схему comgooglemaps" -canOpenURL: не удалось для URL: "googlechromes://" - ошибка: "Это приложение не разрешено запросить схему googlechromes"
Чтобы устранить эти ошибки, добавьте объявление в свой Info.plist
.
Что дальше
Теперь, когда у вас есть ключ API и проект Xcode, вы можете создавать и запускать приложения. Maps SDK для iOS предоставляет множество руководств и примеров приложений, которые помогут вам начать работу. Более подробную информацию см.: