Настроить проект Xcode

После включения биллинга и создания ключа 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 в новый или существующий проект, выполните следующие действия:

  1. Откройте project или workspace Xcode, затем перейдите в Файл > Добавить зависимости пакета .
  2. Введите https://github.com/googlemaps/ios-maps-sdk в качестве URL-адреса, нажмите Enter , чтобы загрузить пакет, и нажмите «Добавить пакет».
  3. Чтобы установить определенную version , установите поле Dependency Rule на один из вариантов на основе версии. Для новых проектов мы рекомендуем указать последнюю версию и использовать параметр "Exact Version". После завершения нажмите "Add Package".

Чтобы обновить package для существующего проекта, выполните следующие действия:

  1. Если вы обновляетесь с версии ниже 9.0.0, вам необходимо удалить следующие зависимости: GoogleMapsBase , GoogleMapsCore и GoogleMapsM4B после обновления. Не удаляйте зависимость для GoogleMaps . Для получения дополнительной информации см. Заметки о выпуске версии 9.0.0 .

    В настройках конфигурации проекта Xcode найдите Frameworks, Libraries, and Embedded Content . Используйте знак минус (-) , чтобы удалить следующий фреймворк:

    • GoogleMapsBase (только для обновлений с версий ниже 9.0.0)
    • GoogleMapsCore (только для обновлений с версий ниже 9.0.0)
    • GoogleMapsM4B (Только для обновлений с версий ниже 9.0.0)
  2. В Xcode перейдите в «Файл > Пакеты > Обновить до последних версий пакетов».
  3. Чтобы проверить установку, перейдите в раздел «Зависимости пакетов» в Project Navigator, чтобы проверить пакет и его версию.

Чтобы удалить существующие зависимости Maps SDK для iOS, добавленные с помощью CocoaPods , выполните следующие действия:

  1. Закройте рабочее пространство Xcode. Откройте терминал и выполните следующую команду:
    sudo gem install cocoapods-deintegrate cocoapods-clean 
    pod deintegrate 
    pod cache clean --all
  2. Удалите Podfile , Podfile.resolved и workspace Xcode, если вы не используете их ни для чего, кроме CocoaPods.

Чтобы удалить существующий Maps SDK для iOS, установленный вручную, выполните следующие действия:
  1. В настройках конфигурации проекта Xcode найдите Frameworks, Libraries, and Embedded Content . Используйте знак минус (-) , чтобы удалить следующий фреймворк:
    • GoogleMaps
    • GoogleMapsBase (Только для установок ниже версии 9.2.0)
    • GoogleMapsCore (только для установок более ранних версий, чем 9.2.0)
    • GoogleMapsM4B (Только для установок ниже версии 9.0.0)
  2. Из каталога верхнего уровня вашего проекта Xcode удалите пакет GoogleMaps .

Ручная установка

В этом руководстве показано, как вручную добавить XCFrameworks, содержащий Maps SDK для iOS, в ваш проект и настроить параметры сборки в Xcode. XCFramework — это двоичный пакет, который можно использовать на нескольких платформах, включая машины с Apple Silicon .

  1. Загрузите следующие двоичные файлы SDK и файлы ресурсов:
  2. Извлеките файлы для доступа к XCFrameworks и ресурсам.
  3. Если у вас еще нет проекта Xcode, создайте его сейчас и сохраните на локальном компьютере. Если вы новичок в разработке iOS:
    1. Создайте новый проект.
    2. Выберите iOS > Шаблон приложения .
    3. На экране параметров проекта:
      1. Введите название проекта .
      2. Запишите значение поля Bundle identifier . Вы можете использовать это значение для ограничения вашего API-ключа ниже.
      3. Установите для интерфейса проекта значение Storyboard .
      4. Установите язык Swift или Objective-C .
  4. Откройте вкладку General . Перетащите следующий XCFramework в свой проект в раздел Frameworks, Libraries, and Embedded Content . Убедитесь, что выбран параметр Do Not Embed :
    • GoogleMaps.xcframework
  5. Скопируйте GoogleMaps.bundle из GoogleMapsResources , который вы скачали, в каталог верхнего уровня вашего проекта Xcode. Обязательно выберите Копировать элементы в папку целевой группы при появлении соответствующего запроса.
  6. Выберите свой проект в Навигаторе проектов и укажите цель вашего приложения.
  7. Откройте вкладку Build Phases для целевого приложения. В 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
    • Security.framework
    • SystemConfiguration.framework
    • UIKit.framework
  8. Выберите свой проект, а не конкретную цель, и откройте вкладку Build Settings . В разделе Linking - General -> Other Linker Flags добавьте -ObjC к "Debug" и "Release". Если эти настройки не видны, измените фильтр в панели Build Settings с Basic на All .

  9. Чтобы установить Places SDK для iOS XCFramework, см. раздел Начало работы с Places SDK для iOS .

CocoaPods

Maps SDK для iOS доступен как pod CocoaPods . CocoaPods — это менеджер зависимостей с открытым исходным кодом для проектов Swift и Objective-C Cocoa.

Если у вас еще нет инструмента CocoaPods, установите его на macOS, выполнив следующую команду из терминала. Подробности см. в руководстве по началу работы с CocoaPods .

sudo gem install cocoapods

Создайте Podfile для Maps SDK для iOS и используйте его для установки API и его зависимостей:

  1. Если у вас еще нет проекта Xcode, создайте его сейчас и сохраните на локальном компьютере. Если вы новичок в разработке iOS:
    1. Создайте новый проект.
    2. Выберите iOS > Шаблон приложения .
    3. На экране параметров проекта:
      1. Введите название проекта .
      2. Запишите значение поля Bundle identifier . Вы можете использовать это значение для ограничения вашего API-ключа ниже.
      3. Установите для интерфейса проекта значение Storyboard .
      4. Установите язык Swift или Objective-C .
  2. Создайте файл с именем Podfile в каталоге вашего проекта. Этот файл определяет зависимости вашего проекта.
  3. Отредактируйте Podfile и добавьте свои зависимости вместе с их версиями . Вот пример, который включает зависимость, необходимую для Maps SDK для iOS:
    source 'https://github.com/CocoaPods/Specs.git'
    
    platform :ios, '16.0'
    
    target 'YOUR_APPLICATION_TARGET_NAME_HERE' do
      pod 'GoogleMaps', '10.0.0'
    end
    Обязательно регулярно запускайте pod outdated , чтобы определить, когда есть более новая версия, чтобы быть уверенным, что вы всегда используете последнюю версию. При необходимости обновитесь до последней версии .
  4. Сохраните Podfile .
  5. Откройте терминал и перейдите в каталог, содержащий Podfile :

    cd <path-to-project>
  6. Запустите команду pod install . Это установит API, указанные в Podfile , вместе со всеми зависимостями, которые они могут иметь.

    pod install
  7. Закройте Xcode, а затем откройте (двойным щелчком) файл .xcworkspace вашего проекта, чтобы запустить Xcode. С этого момента и далее для открытия проекта необходимо использовать файл .xcworkspace .

Чтобы обновить API для существующего проекта, выполните следующие действия:

  1. Откройте терминал и перейдите в каталог проекта, содержащий Podfile .
  2. Запустите команду pod update . Это обновит все API, указанные в Podfile , до последней версии.

Шаг 3: Добавьте свой ключ API в проект

В Get an API key вы сгенерировали API key для вашего приложения. Теперь добавьте этот ключ в ваш проект Xcode.

В следующих примерах замените YOUR_API_KEY на свой ключ API.

Быстрый

Добавьте свой ключ API в AppDelegate.swift следующим образом:

  1. Добавьте следующий оператор импорта:
    import GoogleMaps
  2. Добавьте следующее в метод application(_:didFinishLaunchingWithOptions:) , используя ваш ключ API:
    GMSServices.provideAPIKey("YOUR_API_KEY")
  3. Если вы также используете API Places, добавьте свой ключ еще раз, как показано здесь:
    GMSPlacesClient.provideAPIKey("YOUR_API_KEY")

Objective-C

Добавьте свой ключ API в AppDelegate.m следующим образом:

  1. Добавьте следующий оператор импорта:
    @import GoogleMaps;
  2. Добавьте следующее в application:didFinishLaunchingWithOptions: используя ваш ключ API:
    [GMSServices provideAPIKey:@"YOUR_API_KEY"];
  3. Если вы также используете API Places, добавьте свой ключ еще раз, как показано здесь:
    [GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];

Шаг 4 (необязательно): проверьте файл Apple Privacy Manifest

Apple требует сведения о конфиденциальности приложений для приложений в App Store. Посетите страницу сведений о конфиденциальности Apple App Store для получения обновлений и дополнительной информации.

Файл манифеста конфиденциальности Apple включен в пакет ресурсов для SDK. Чтобы убедиться, что файл манифеста конфиденциальности включен, и проверить его содержимое, создайте архив вашего приложения и сгенерируйте отчет о конфиденциальности из архива.

Шаг 5 (необязательно): Объявите схемы 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:

Конфигурация `LSApplicationQueriesSchemes` в 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, вы можете создавать и запускать приложения. Navigation SDK для iOS предоставляет множество учебных пособий и примеров приложений, которые помогут вам начать работу. Для получения более подробной информации см.: