Следуйте инструкциям в этом руководстве, чтобы скачать Places SDK для iOS, добавить библиотеку и ее зависимости в свое приложение и бесплатно получить ключ API.
Примечания к выпуску доступны для каждого выпуска.
Шаг 1: Получите последнюю версию Xcode
Чтобы создать проект с помощью Places SDK для iOS, вам необходимо:
- Xcode версии 14.0 или новее.
- Кокоаподы или карфагеняне .
Шаг 2. Установите SDK
Чтобы установить API в новый проект, выполните следующие действия:Используйте какаподы
Places SDK для iOS доступен в виде модуля CocoaPod , GooglePlaces , который содержит все функции мест.
CocoaPods — это менеджер зависимостей с открытым исходным кодом для проектов Swift и Objective-C Cocoa. Если у вас еще нет инструмента CocoaPods, установите его в macOS, выполнив следующую команду из терминала. Подробнее см. в руководстве по началу работы с CocoaPods .
sudo gem install cocoapods
Создайте Podfile
для Places SDK для iOS и используйте его для установки SDK и его зависимостей:
- Если у вас еще нет проекта Xcode, создайте его сейчас и сохраните на локальном компьютере. Если вы новичок в разработке для iOS, создайте новый проект и выберите шаблон приложения iOS .
- Создайте файл с именем
Podfile
в каталоге вашего проекта. Этот файл определяет зависимости вашего проекта. - Отредактируйте
Podfile
и добавьте свои зависимости вместе с их версиями . Вот пример, в котором указывается целевое имя вашего приложения и имя модуляGooglePlaces
:source 'https://github.com/CocoaPods/Specs.git' platform :ios, '14.0' target 'YOUR_APPLICATION_TARGET_NAME_HERE' do pod 'GooglePlaces', '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
, до последней версии.
Использовать Карфаген
Places SDK для iOS доступен для использования с Carthage — простым децентрализованным менеджером зависимостей для проектов Swift и Objective-C Cocoa.
- Установить Карфаген. Существует несколько способов, поэтому смотрите точные шаги в файле Carthage README .
- Если у вас еще нет проекта Xcode, создайте его сейчас и сохраните на локальном компьютере. Если вы новичок в разработке для iOS, создайте новый проект и выберите шаблон приложения iOS .
- Создайте файл с именем
Cartfile
в каталоге вашего проекта. Этот файл определяет зависимости вашего проекта. - Отредактируйте
Cartfile
и добавьте свои зависимости вместе с их версиями :
binary "https://dl.google.com/geosdk/GooglePlaces.json" == 6.2.1
Обязательно регулярно запускайтеcarthage outdated
, чтобы определить появление более новой версии и всегда пользоваться последней версией. - Сохраните
Cartfile
. - В окне терминала перейдите в каталог, содержащий
Cartfile
:
cd <path-to-project>
- Запустите команду
carthage update
. Это установит API, указанные вCartfile
, вместе со всеми возможными зависимостями. - В Finder в каталоге вашего проекта перейдите к загруженным файлам фреймворка в
Carthage/Build/iOS
. - Перетащите следующие пакеты в свой проект (при появлении запроса выберите Копировать элементы, если необходимо ):
-
GooglePlaces-xxx/Frameworks/GooglePlaces.xcframework
-
- Щелкните правой кнопкой мыши
GooglePlaces.xcframework
в своем проекте и выберите Показать в Finder . - Перетащите
GooglePlaces.bundle
из папкиResources
в свой проект. При появлении запроса убедитесь, что флажок Копировать элементы в папку целевой группы не выбран. - Выберите свой проект в Навигаторе проектов и выберите цель вашего приложения.
- Откройте вкладку Build Phases и в Link Binary with Libraries добавьте следующие фреймворки и библиотеки:
-
CoreGraphics.framework
-
CoreLocation.framework
-
libc++.tbd
-
libz.tbd
-
QuartzCore.framework
-
UIKit.framework
-
Выберите свой проект, а не конкретную цель, и откройте вкладку Build Settings .
- В разделе Other Linker Flags добавьте
-ObjC
. Если эти настройки не отображаются, измените фильтр на панели Build Settings с Basic на All .
Чтобы обновить API для существующего проекта, выполните следующие действия:
- Откройте терминал и перейдите в каталог проекта, содержащий
Cartfile
. - Запустите команду
carthage update
. Это обновит все API, указанные вCartfile
, до последней версии.
Установить вручную
В этом руководстве показано, как вручную добавить платформу GooglePlaces в ваш проект и настроить параметры сборки в Xcode.
- Загрузите исходные файлы SDK: GooglePlaces-8.0.0.
- Распаковать исходные файлы.
- Запустите Xcode и либо откройте существующий проект, либо создайте новый проект. Если вы новичок в разработке для iOS, создайте новый проект и выберите шаблон приложения iOS .
- Удалите из проекта все пакеты Карт из предыдущих выпусков.
- Перетащите следующие пакеты в свой проект (при появлении запроса выберите Копировать элементы, если необходимо ):
-
GooglePlaces-xxx/Frameworks/GooglePlaces.xcframework
-
- Щелкните правой кнопкой мыши
GooglePlaces.xcframework
в своем проекте и выберите Показать в Finder . - Перетащите
GooglePlaces.bundle
из папкиResources
в свой проект. При появлении запроса убедитесь, что флажок Копировать элементы в папку целевой группы не выбран. - Выберите свой проект в Навигаторе проектов и выберите цель вашего приложения.
- Откройте вкладку Build Phases и в Link Binary with Libraries добавьте следующие фреймворки и библиотеки:
-
CoreGraphics.framework
-
CoreLocation.framework
-
libc++.tbd
-
libz.tbd
-
QuartzCore.framework
-
UIKit.framework
-
Выберите свой проект, а не конкретную цель, и откройте вкладку Build Settings .
- В разделе Other Linker Flags добавьте
-ObjC
. Если эти настройки не отображаются, измените фильтр на панели Build Settings с Basic на All .
Установите XCFramework
XCFramework — это двоичный пакет, который можно использовать на нескольких платформах, в том числе на компьютерах с набором микросхем M1, для установки Places SDK для iOS. В этом руководстве показано, как добавить XCFramework, содержащий Places SDK для iOS, в ваш проект и настроить параметры сборки в Xcode.
С Карфагеном
Places SDK для iOS доступен для использования с Carthage — простым децентрализованным менеджером зависимостей для проектов Swift и Objective-C Cocoa.
- Установить Карфаген. Существует несколько способов, поэтому смотрите точные шаги в файле Carthage README .
- Если у вас еще нет проекта Xcode, создайте его сейчас и сохраните на локальном компьютере. Если вы новичок в разработке для iOS, создайте новый проект и выберите шаблон приложения iOS .
- Создайте файл с именем
Cartfile
в каталоге вашего проекта. Этот файл определяет зависимости вашего проекта. Отредактируйте
Cartfile
и добавьте свои зависимости вместе с их версиями :binary "https://dl.google.com/geosdk/GooglePlaces.json" == 6.2.1-beta
- Сохраните
Cartfile
. В окне терминала перейдите в каталог, содержащий
Cartfile
:cd <path-to-project>
- Запустите команду
carthage update
. Это установит API, указанные вCartfile
, вместе со всеми возможными зависимостями. - В Finder в каталоге вашего проекта перейдите к загруженным файлам фреймворка в разделе
Carthage/Build
. - Перетащите следующий XCFramework в свой проект в раздел Frameworks, Libraries и Embedded Content . Обязательно выберите «Не вставлять» :
-
GooglePlaces-xxx/GooglePlaces.xcframework
-
- Щелкните правой кнопкой мыши
GooglePlaces.xcframework
в своем проекте и выберите Показать в Finder . - Перетащите
GooglePlaces.bundle
из папкиios-arm64/GooglePlaces.framework/Resources
в каталог верхнего уровня вашего проекта Xcode. При появлении запроса убедитесь, что флажок Копировать элементы в папку целевой группы не выбран. - Выберите свой проект в Навигаторе проектов и выберите цель вашего приложения.
- Откройте вкладку Build Phases и в Link Binary with Libraries добавьте следующие фреймворки и библиотеки:
-
CoreGraphics.framework
-
CoreLocation.framework
-
libc++.tbd
-
libz.tbd
-
QuartzCore.framework
-
UIKit.framework
-
Выберите свой проект, а не конкретную цель, и откройте вкладку Build Settings .
- В разделе Other Linker Flags добавьте
-ObjC
. Если эти настройки не отображаются, измените фильтр на панели Build Settings с Basic на All .
Вручную
В этом руководстве показано, как вручную добавить Maps SDK для iOS в проект и настроить параметры сборки в Xcode.
- Загрузите исходные файлы SDK: GooglePlaces-8.0.0 .
- Распаковать исходные файлы. Перейдите в папку Frameworks , чтобы получить доступ к файлу XCFramework.
- Запустите Xcode и либо откройте существующий проект, либо создайте новый проект. Если вы новичок в iOS, создайте новый проект и выберите шаблон приложения iOS .
- Перетащите следующий XCFramework в свой проект в раздел Frameworks, Libraries и Embedded Content . Обязательно выберите «Не вставлять» :
-
GooglePlaces-xxx/GooglePlaces.xcframework
-
- Щелкните правой кнопкой мыши
GooglePlaces.xcframework
в своем проекте и выберите Показать в Finder . - Перетащите
GooglePlaces.bundle
из папкиios-arm64/GooglePlaces.framework/Resources
в каталог верхнего уровня вашего проекта Xcode. При появлении запроса убедитесь, что флажок Копировать элементы в папку целевой группы не выбран. - Выберите свой проект в Навигаторе проектов и выберите цель вашего приложения.
- Откройте вкладку Build Phases и в Link Binary with Libraries добавьте следующие фреймворки и библиотеки:
-
CoreGraphics.framework
-
CoreLocation.framework
-
libc++.tbd
-
libz.tbd
-
QuartzCore.framework
-
UIKit.framework
-
Выберите свой проект, а не конкретную цель, и откройте вкладку Build Settings .
- В разделе Other Linker Flags добавьте
-ObjC
. Если эти настройки не отображаются, измените фильтр на панели Build Settings с Basic на All .
Шаг 3. Добавьте ключ API в свое приложение.
В следующих примерах замените YOUR_API_KEY
своим ключом API.
Быстрый
Добавьте свой ключ API в свой AppDelegate.swift
следующим образом:
- Добавьте следующий оператор импорта:
import GooglePlaces
- Добавьте следующее в свой метод
application(_:didFinishLaunchingWithOptions:)
, заменив YOUR_API_KEY своим ключом API:GMSPlacesClient.provideAPIKey("YOUR_API_KEY")
Цель-C
Добавьте свой ключ API в AppDelegate.m
следующим образом:
- Добавьте следующий оператор импорта:
@import GooglePlaces;
- Добавьте в свой
application:didFinishLaunchingWithOptions:
метод, заменив YOUR_API_KEY вашим ключом API:[GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];
Шаг 4: Начните писать код
В следующих примерах кода показано, как получить текущее место .
Быстрый
import GooglePlaces import UIKit class GetStartedViewController : UIViewController { // Add a pair of UILabels in Interface Builder, and connect the outlets to these variables. @IBOutlet private var nameLabel: UILabel! @IBOutlet private var addressLabel: UILabel! private var placesClient: GMSPlacesClient! override func viewDidLoad() { super.viewDidLoad() placesClient = GMSPlacesClient.shared() } // Add a UIButton in Interface Builder, and connect the action to this function. @IBAction func getCurrentPlace(_ sender: UIButton) { let placeFields: GMSPlaceField = [.name, .formattedAddress] placesClient.findPlaceLikelihoodsFromCurrentLocation(withPlaceFields: placeFields) { [weak self] (placeLikelihoods, error) in guard let strongSelf = self else { return } guard error == nil else { print("Current place error: \(error?.localizedDescription ?? "")") return } guard let place = placeLikelihoods?.first?.place else { strongSelf.nameLabel.text = "No current place" strongSelf.addressLabel.text = "" return } strongSelf.nameLabel.text = place.name strongSelf.addressLabel.text = place.formattedAddress } } }
Цель-C
#import "GetStartedViewController.h" @import GooglePlaces; @interface GetStartedViewController () // Add a pair of UILabels in Interface Builder and connect the outlets to these variables @property (weak, nonatomic) IBOutlet UILabel *nameLabel; @property (weak, nonatomic) IBOutlet UILabel *addressLabel; @end @implementation GetStartedViewController { GMSPlacesClient *_placesClient; } - (void)viewDidLoad { [super viewDidLoad]; _placesClient = [GMSPlacesClient sharedClient]; } // Add a pair of UILabels in Interface Builder and connect the outlets to these variables. - (IBAction)getCurrentPlace:(UIButton *)sender { GMSPlaceField placeFields = (GMSPlaceFieldName | GMSPlaceFieldFormattedAddress); __weak typeof(self) weakSelf = self; [_placesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:placeFields callback:^(NSArray<GMSPlaceLikelihood *> * _Nullable likelihoods, NSError * _Nullable error) { __typeof__(self) strongSelf = weakSelf; if (strongSelf == nil) { return; } if (error != nil) { NSLog(@"An error occurred %@", [error localizedDescription]); return; } GMSPlace *place = likelihoods.firstObject.place; if (place == nil) { strongSelf.nameLabel.text = @"No current place"; strongSelf.addressLabel.text = @""; return; } strongSelf.nameLabel.text = place.name; strongSelf.addressLabel.text = place.formattedAddress; }]; } @end
Следующие шаги
После настройки проекта вы можете изучить примеры приложений . Вам потребуется установить Cocoapods v1.6.1.