После включения выставления счетов и создания ключа API вы готовы настроить проект Xcode, который вы используете для разработки своего приложения.
Шаг 1: Установите необходимое программное обеспечение
Чтобы создать проект с помощью Maps SDK для iOS, необходимо загрузить и установить:
Шаг 2. Создайте проект Xcode и установите Maps SDK для iOS.
Используйте 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.0.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
, до последней версии.
Использовать Карфаген
Maps SDK для iOS можно использовать с Carthage — простым децентрализованным менеджером зависимостей для проектов Swift и Objective-C Cocoa.
- Установить Карфаген. Существует несколько способов, поэтому смотрите точные шаги в файле Carthage README .
- Если у вас еще нет проекта Xcode, создайте его сейчас и сохраните на локальном компьютере. Если вы новичок в разработке iOS:
- Создайте новый проект.
- Выберите iOS > Шаблон приложения .
- На экране параметров проекта:
- Введите Название проекта .
- Запишите значение поля Идентификатор пакета . Вы можете использовать это значение, чтобы ограничить свой ключ API ниже.
- Установите интерфейс проекта на Storyboard .
- Установите язык на Swift или Objective-C .
- Создайте файл с именем
Cartfile
в каталоге вашего проекта. Этот файл определяет зависимости вашего проекта. - Отредактируйте
Cartfile
и добавьте свои зависимости вместе с их версиями :
binary "https://dl.google.com/geosdk/GoogleMaps.json" == 6.2.1
Обязательно регулярно запускайтеcarthage outdated
, чтобы определить появление более новой версии и всегда пользоваться последней версией. При необходимости обновите до последней версии . - Сохраните
Cartfile
. - В окне терминала перейдите в каталог, содержащий
Cartfile
:
cd <path-to-project>
- Запустите команду
carthage update
. Это установит API, указанные вCartfile
, вместе со всеми возможными зависимостями. - В Finder в каталоге вашего проекта перейдите к загруженным файлам фреймворка в
Carthage/Build/iOS
. - Перетащите следующие пакеты в свой проект: (При появлении запроса выберите Копировать элементы, если необходимо, используйте ту же версию, что и выше. )
-
GoogleMaps-xxx/Base/Frameworks/GoogleMapsBase.xcframework
-
GoogleMaps-xxx/Maps/Frameworks/GoogleMaps.xcframework
-
GoogleMaps-xxx/Maps/Frameworks/GoogleMapsCore.xcframework
- (Только для клиентов Премиум-плана)
GoogleMaps-xxx/M4B/Frameworks/GoogleMapsM4B.xcframework
-
- Щелкните правой кнопкой мыши
GoogleMaps.xcframework
в своем проекте и выберите Показать в Finder . - Перетащите
GoogleMaps.bundle
из папкиResources
в каталог верхнего уровня вашего проекта Xcode. При появлении запроса убедитесь, что флажок Копировать элементы в папку целевой группы не выбран. - Выберите свой проект в Навигаторе проектов и выберите цель вашего приложения.
- Откройте вкладку Build Phases для целевого приложения и в 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
-
Выберите свой проект, а не конкретную цель, и откройте вкладку Build Settings . В разделе Other Linker Flags добавьте
-ObjC
. Если эти настройки не отображаются, измените фильтр на панели Build Settings с Basic на All .Чтобы установить Places SDK для iOS, см. статью Начало работы с Places SDK для iOS .
Чтобы обновить API для существующего проекта, выполните следующие действия:
- Откройте терминал и перейдите в каталог проекта, содержащий
Cartfile
. - Запустите команду
carthage update
. Это обновит все API, указанные вCartfile
, до последней версии.
Установить вручную
В этом руководстве показано, как вручную добавить Maps SDK для iOS в проект и настроить параметры сборки в Xcode.
- Загрузите исходные файлы SDK: GoogleMaps-8.0.0 .
- Распаковать исходные файлы.
- Если у вас еще нет проекта Xcode, создайте его сейчас и сохраните на локальном компьютере. Если вы новичок в разработке iOS:
- Создайте новый проект.
- Выберите iOS > Шаблон приложения .
- На экране параметров проекта:
- Введите Название проекта .
- Запишите значение поля Идентификатор пакета . Вы можете использовать это значение, чтобы ограничить свой ключ API ниже.
- Установите интерфейс проекта на Storyboard .
- Установите язык на Swift или Objective-C .
- Перетащите следующие пакеты в свой проект: (При появлении запроса выберите Копировать элементы, если необходимо, используйте ту же версию, что и выше. )
-
GoogleMaps-xxx/Base/Frameworks/GoogleMapsBase.xcframework
-
GoogleMaps-xxx/Maps/Frameworks/GoogleMaps.xcframework
-
GoogleMaps-xxx/Maps/Frameworks/GoogleMapsCore.xcframework
- (Только для клиентов Премиум-плана)
GoogleMaps-xxx/M4B/Frameworks/GoogleMapsM4B.xcframework
-
- Щелкните правой кнопкой мыши
GoogleMaps.xcframework
в своем проекте и выберите Показать в Finder . - Перетащите
GoogleMaps.bundle
из папкиResources
в каталог верхнего уровня вашего проекта Xcode. При появлении запроса убедитесь, что флажок Копировать элементы в папку целевой группы не выбран. - Выберите свой проект в Навигаторе проектов и выберите цель вашего приложения.
- Откройте вкладку Build Phases для целевого приложения и в 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
-
Выберите свой проект, а не конкретную цель, и откройте вкладку Build Settings . В разделе Other Linker Flags добавьте
-ObjC
. Если эти настройки не отображаются, измените фильтр на панели Build Settings с Basic на All .Чтобы установить Places SDK для iOS, см. статью Начало работы с Places SDK для iOS .
Установите XCFramework
XCFramework — это двоичный пакет, который можно использовать на нескольких платформах, в том числе на компьютерах с набором микросхем M1, для установки Maps SDK для iOS. В этом руководстве показано, как добавить XCFramework, содержащий Maps SDK для iOS, в ваш проект и настроить параметры сборки в Xcode.
С Карфагеном
Maps SDK для iOS можно использовать с Carthage — простым децентрализованным менеджером зависимостей для проектов Swift и Objective-C Cocoa.
- Установить Карфаген. Существует несколько способов, поэтому смотрите точные шаги в файле Carthage README .
- Если у вас еще нет проекта Xcode, создайте его сейчас и сохраните на локальном компьютере. Если вы новичок в разработке iOS:
- Создайте новый проект.
- Выберите iOS > Шаблон приложения .
- На экране параметров проекта:
- Введите Название проекта .
- Запишите значение поля Идентификатор пакета . Вы можете использовать это значение, чтобы ограничить свой ключ API ниже.
- Установите интерфейс проекта на Storyboard .
- Установите язык на Swift или Objective-C .
- Создайте файл с именем
Cartfile
в каталоге вашего проекта. Этот файл определяет зависимости вашего проекта. Отредактируйте
Cartfile
и добавьте свои зависимости вместе с их версиями :binary "https://dl.google.com/geosdk/GoogleMaps.json" == 6.2.1-beta
- Сохраните
Cartfile
. - В окне терминала перейдите в каталог, содержащий
Cartfile
:
cd <path-to-project>
- Запустите команду
carthage update
. Это установит API, указанные вCartfile
, вместе со всеми возможными зависимостями. - В Finder в каталоге вашего проекта перейдите к загруженным файлам фреймворка в разделе
Carthage/Build
. - Перетащите следующие XCFrameworks в свой проект в раздел Frameworks, Libraries и Embedded Content . Обязательно выберите «Не вставлять» для каждого XCFramework:
-
GoogleMaps-xxx/GoogleMapsBase.xcframework
-
GoogleMaps-xxx/GoogleMaps.xcframework
-
GoogleMaps-xxx/GoogleMapsCore.xcframework
- (Только для клиентов Премиум-плана)
GoogleMaps-xxx/GoogleMapsM4B.xcframework
-
- Щелкните правой кнопкой мыши
GoogleMaps.xcframework
в своем проекте и выберите Показать в Finder . - Перетащите
GoogleMaps.bundle
из папкиios-arm64_x86_64-simulator/GoogleMaps.framework/Resources
в каталог верхнего уровня вашего проекта Xcode. При появлении запроса убедитесь, что параметр Копировать элементы при необходимости не выбран. - Выберите свой проект в Навигаторе проектов и выберите цель вашего приложения.
- Откройте вкладку Build Phases для целевого приложения и внутри 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
-
Выберите свой проект, а не конкретную цель, и откройте вкладку Build Settings . В разделе Other Linker Flags добавьте
-ObjC
. Если эти настройки не отображаются, измените фильтр на панели Build Settings с Basic на All .Чтобы установить Places SDK для iOS XCFramework, см. статью Начало работы с Places SDK для iOS .
Вручную
В этом руководстве показано, как вручную добавить Maps SDK для iOS в проект и настроить параметры сборки в Xcode.
- Загрузите исходные файлы SDK: GoogleMaps-8.0.0 .
- Распаковать исходные файлы. Перейдите в папку Frameworks , чтобы получить доступ к файлу XCFramework.
- Если у вас еще нет проекта Xcode, создайте его сейчас и сохраните на локальном компьютере. Если вы новичок в разработке iOS:
- Создайте новый проект.
- Выберите iOS > Шаблон приложения .
- На экране параметров проекта:
- Введите Название проекта .
- Запишите значение поля Идентификатор пакета . Вы можете использовать это значение, чтобы ограничить свой ключ API ниже.
- Установите интерфейс проекта на Storyboard .
- Установите язык на Swift или Objective-C .
- Перетащите следующие XCFrameworks в свой проект в раздел Frameworks, Libraries и Embedded Content . Обязательно выберите «Не вставлять» для каждого XCFramework:
-
GoogleMaps-xxx/GoogleMapsBase.xcframework
-
GoogleMaps-xxx/GoogleMaps.xcframework
-
GoogleMaps-xxx/GoogleMapsCore.xcframework
- (Только для клиентов Премиум-плана)
GoogleMaps-xxx/GoogleMapsM4B.xcframework
-
- Щелкните правой кнопкой мыши
GoogleMaps.xcframework
в своем проекте и выберите Показать в Finder . - Перетащите
GoogleMaps.bundle
из папкиios-arm64_x86_64-simulator/GoogleMaps.framework/Resources
в каталог верхнего уровня вашего проекта Xcode. При появлении запроса убедитесь, что параметр Копировать элементы при необходимости не выбран. - Выберите свой проект в Навигаторе проектов и выберите цель вашего приложения.
- Откройте вкладку Build Phases для целевого приложения и внутри 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
-
Выберите свой проект, а не конкретную цель, и откройте вкладку Build Settings . В разделе Other Linker Flags добавьте
-ObjC
. Если эти настройки не отображаются, измените фильтр на панели Build Settings с Basic на All .Чтобы установить 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 (необязательно): зарегистрируйтесь, чтобы использовать платформу рендеринга Metal.
Maps SDK для iOS позволяет вам использовать платформу рендеринга Metal от Apple. Чтобы попробовать средство рендеринга Metal в своем приложении, вызовите [GMSServices setMetalRendererEnabled:YES]
в Objective-C или GMSServices.setMetalRendererEnabled(true)
в Swift перед созданием каких-либо представлений карты.
Если вы устанавливаете SDK вручную , вы также должны добавить Metal.framework
в Xcode.
Шаг 5. Добавьте карту
В приведенном ниже коде показано, как добавить простую карту в существующий ViewController
:
Добавьте или обновите методы в
ViewController
вашего приложения по умолчанию, чтобы создать и инициализировать экземплярGMSMapView
.Быстрый
/* * 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 camera = GMSCameraPosition.camera(withLatitude: -33.86, longitude: 151.20, zoom: 6.0) let mapView = GMSMapView.map(withFrame: self.view.frame, camera: camera) 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. GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.86 longitude:151.20 zoom:6]; GMSMapView *mapView = [GMSMapView mapWithFrame:self.view.frame camera:camera]; mapView.myLocationEnabled = YES; [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
Запустите ваше приложение. Вы должны увидеть карту с одним маркером в центре Сиднея, Австралия. Если вы видите маркер, но не видите карту, подтвердите, что вы предоставили свой ключ API.
Шаг 6 (необязательно): объявите схемы URL, используемые API
Начиная с iOS 9 и Xcode 7, приложения могут объявлять схемы URL-адресов, которые они намереваются открыть, путем указания схем в файле Info.plist
приложения. Maps SDK для iOS открывает мобильное приложение Google Maps, когда пользователь щелкает логотип Google на карте, поэтому ваше приложение может объявить соответствующие схемы URL-адресов.
Чтобы объявить схемы URL, используемые Maps SDK для iOS, добавьте в свой Info.plist
следующие строки:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>googlechromes</string>
<string>comgooglemaps</string>
</array>
На следующем снимке экрана показана конфигурация в пользовательском интерфейсе Xcode:
Без вышеуказанного объявления могут возникнуть следующие ошибки, когда пользователь касается логотипа Google на карте:
-canOpenURL: failed for URL: "comgooglemaps://" - error: "This app is not allowed to query for scheme comgooglemaps"
-canOpenURL: failed for URL: "googlechromes://" - error: "This app is not allowed to query for scheme googlechromes"
Чтобы устранить эти ошибки, добавьте объявление в свой Info.plist
, как описано выше.
Что дальше
Теперь, когда у вас есть ключ API и проект Xcode, вы можете создавать и запускать приложения. Maps SDK для iOS содержит множество руководств и примеров приложений, которые помогут вам начать работу. Подробнее см.: