После включения выставления счетов и создания ключа API вы готовы настроить проект Xcode, который вы используете для разработки своего приложения.
Примечания к выпуску доступны для каждого выпуска.
Шаг 1. Установите необходимое программное обеспечение
Чтобы создать проект с помощью Maps SDK для iOS, необходимо скачать и установить:
- Xcode версии 15.0 или новее
Шаг 2. Создайте проект Xcode и установите Maps SDK для iOS.
Менеджер пакетов Swift
Maps SDK для iOS можно установить через Swift Package Manager . Чтобы добавить SDK, убедитесь, что вы удалили все существующие зависимости Maps SDK для iOS.
Чтобы добавить SDK в новый или существующий проект, выполните следующие действия:
- Откройте
project
илиworkspace
Xcode, затем выберите «Файл» > «Добавить зависимости пакета» . - Введите https://github.com/googlemaps/ios-maps-sdk в качестве URL-адреса, нажмите Enter , чтобы загрузить пакет, и нажмите «Добавить пакет».
- Чтобы установить конкретную
version
, установите в поле «Правило зависимости» один из вариантов на основе версии. Для новых проектов рекомендуем указывать последнюю версию и использовать опцию «Точная версия». После завершения нажмите «Добавить пакет». - В окне «Выбор продуктов пакета» убедитесь, что
GoogleMaps
(для версий ранее 9.0.0 убедитесь, чтоGoogleMaps
,GoogleMapsBase
иGoogleMapsCore
) будут добавлены к назначенной вамиmain
цели. После завершения нажмите «Добавить пакет». - Чтобы проверить установку, перейдите на панель
General
целевой системы. В разделе «Платформы», «Библиотеки» и «Встроенный контент» вы должны увидеть установленные пакеты. Вы также можете просмотреть раздел «Зависимости пакетов» в «Навигаторе проекта», чтобы проверить пакет и его версию.
Чтобы обновить package
для существующего проекта, выполните следующие действия:
Если вы выполняете обновление с версии более ранней, чем 9.0.0, после обновления необходимо удалить следующие зависимости:
GoogleMapsBase
,GoogleMapsCore
иGoogleMapsM4B
. Не удаляйте зависимость дляGoogleMaps
. Дополнительную информацию см. в примечаниях к выпуску версии 9.0.0 .В настройках конфигурации проекта Xcode найдите Frameworks, Libraries и Embedded Content . Используйте знак минус (-), чтобы удалить следующую структуру:
-
GoogleMapsBase
(только для обновлений с версий ранее 9.0.0) -
GoogleMapsCore
(только для обновлений с версий ранее 9.0.0) -
GoogleMapsM4B
(только для обновлений с версий ранее 9.0.0)
-
- В Xcode перейдите в «Файл» > «Пакеты» > «Обновить до последних версий пакетов».
- Чтобы проверить установку, перейдите в раздел «Зависимости пакетов» в «Навигаторе проекта», чтобы проверить пакет и его версию.
Чтобы удалить существующие зависимости Maps SDK для iOS, добавленные с помощью CocoaPods
, выполните следующие действия:
- Закройте рабочую область Xcode. Откройте терминал и выполните следующую команду:
sudo gem install cocoapods-deintegrate cocoapods-clean pod deintegrate pod cache clean --all
- Удалите
Podfile
,Podfile.resolved
иworkspace
Xcode, если вы не используете их ни для чего, кроме CocoaPods.
- В настройках конфигурации проекта Xcode найдите Frameworks, Libraries и Embedded Content . Используйте знак минус (-), чтобы удалить следующую структуру:
-
GoogleMaps
-
GoogleMapsBase
(только для установок до версии 9.0.0) -
GoogleMapsCore
(только для установок до версии 9.0.0) -
GoogleMapsM4B
(только для установок до версии 9.0.0)
-
- Из каталога верхнего уровня вашего проекта Xcode удалите пакет
GoogleMaps
.
Какао-стручки
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, '15.0' target 'YOUR_APPLICATION_TARGET_NAME_HERE' do pod 'GoogleMaps', '8.4.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
-
- Скопируйте
GoogleMaps.bundle
из загруженного вами GoogleMapsResources в каталог верхнего уровня вашего проекта Xcode. При появлении запроса обязательно выберите «Копировать элементы в папку целевой группы» . - Выберите свой проект в Навигаторе проектов и выберите цель своего приложения.
- Откройте вкладку «Фазы сборки» для цели вашего приложения. В Link Binary with Libraries добавьте следующие платформы и библиотеки:
-
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
(только если вы используете OpenGL) -
QuartzCore.framework
-
SystemConfiguration.framework
-
UIKit.framework
-
Выберите свой проект, а не конкретную цель, и откройте вкладку «Настройки сборки» . В разделе «Связывание — Общие -> Другие флаги компоновщика» добавьте
-ObjC
в поля «Отладка» и «Выпуск». Если эти параметры не отображаются, измените фильтр на панели «Настройки сборки» с «Базовый» на «Все» .Чтобы установить Places SDK для iOS XCFramework, см. раздел Начало работы с Places SDK для iOS .
Шаг 3. Проверьте файл манифеста конфиденциальности Apple.
Apple требует предоставить информацию о конфиденциальности для приложений в App Store. Посетите страницу сведений о конфиденциальности Apple App Store для получения обновлений и дополнительной информации.
Файл манифеста конфиденциальности Apple включен в пакет ресурсов для SDK. Чтобы убедиться, что файл манифеста конфиденциальности включен, и проверить его содержимое, создайте архив своего приложения и создайте отчет о конфиденциальности из архива.
Шаг 4. Добавьте ключ 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"];
Шаг 5. Добавьте карту
Быстрый
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
#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, вы можете создавать и запускать приложения. Navigation SDK для iOS предоставляет множество руководств и примеров приложений, которые помогут вам начать работу. Более подробную информацию см.: