Краткое руководство по облачным привязкам в iOS

API ARCore Cloud Anchor или сервис ARCore Cloud Anchor предоставляет возможности облачной привязки для ваших приложений iOS, позволяя пользователям устройств iOS и Android обмениваться опытом AR.

В этом руководстве показано, как:

  • Настройте свою среду разработки для работы с Cloud Anchors
  • Попробуйте размещение и разрешение привязок в примере приложения.

Предварительные условия

  • Xcode версии 13.0 или новее
  • Cocoapods 1.4.0 или новее, если вы используете Cocoapods
  • ARKit-совместимое устройство Apple под управлением iOS 12.0 или более поздней версии (требуется цель развертывания iOS 12.0 или более поздней версии)

Использование облачных якорей

В следующих шагах используется пример приложения Cloud Anchors, чтобы показать важные задачи по настройке и созданию приложения, поддерживающего ARCore Cloud Anchors.

Получите образец приложения Cloud Anchors

  1. Клонируйте или загрузите ARCore SDK для iOS с GitHub, чтобы получить пример кода приложения.

  2. Откройте окно Терминала или Finder и перейдите к папке, в которую вы клонировали или загрузили SDK.

  3. Вы можете найти пример кода приложения в
    /arcore-ios-sdk-master/Examples/CloudAnchorExample .

    Пример кода приложения постоянных облачных привязок находится в
    /arcore-ios-sdk-master/Examples/PersistentCloudAnchorExample .

Настройка сеанса

Пример приложения выполняет следующие важные задачи в рамках настройки сеанса:

Настройте общий доступ к идентификатору Cloud Anchor

Пример приложения Cloud Anchors использует Firebase для обмена идентификаторами Cloud Anchor между устройствами. Вы можете использовать другое решение в своих приложениях.

Чтобы настроить базу данных Firebase в примере приложения:

  1. Следуйте инструкциям Firebase по добавлению Firebase в ваше приложение .
  2. Загрузите файл GoogleService-Info.plist , созданный при добавлении Firebase в ваше приложение.
  3. Включите хранилище Firebase для примера:
    • Перейдите в консоль Firebase и выберите проект, который вы настроили для примера приложения.
    • Выберите панель Database .
    • В разделе Realtime Database нажмите Get Started .
    • Откроется меню Security rules for Realtime Database .
      • Чтобы запустить образец, выберите Start in test mode .
      • Обратите внимание: если вы используете Firebase для приложения, которое планируете опубликовать, вам следует использовать более строгие правила безопасности.
  4. В Xcode добавьте файл GoogleService-Info.plist в свое приложение рядом с Info.plist .

Настройте API ARCore

Чтобы использовать Cloud Anchors, вам необходимо сначала настроить API ARCore для вашего приложения.

Запустить обновление модуля

Приложение CloudAnchorExample поставляется с Podfile , предварительно настроенным с использованием необходимых вам версий ARCore SDK и iOS. Чтобы установить эти зависимости:

  1. Откройте окно терминала и запустите pod update из папки, где существует проект Xcode.
    При этом будет создан файл .xcworkspace , который вы будете использовать позже для сборки и запуска приложения.

См. раздел «Добавление ARCore SDK в ваше приложение» для получения подробной информации о настройке Podfile в ваших собственных приложениях.

  1. Откройте файл .xcworkspace проекта в Xcode.

    Чтобы избежать ошибок сборки, убедитесь, что вы выполняете сборку из файла .xcworkspace , а не из файла .xcodeproj .

Измените идентификатор пакета приложений

В Xcode измените идентификатор пакета приложения, чтобы вы могли подписать приложение со своей командой.

Создайте и запустите приложение

  1. Подключите свое устройство и запустите приложение в Xcode.

  2. (Необязательно) Если вы создаете и запускаете пример приложения, см. следующий раздел для получения подробной информации об использовании приложения для размещения и разрешения облачных привязок.

Попробуйте образец приложения

  1. Создайте и запустите пример приложения из файла .xcworkspace , чтобы запустить его на своем устройстве.

  2. При появлении запроса предоставьте приложению разрешения камеры. Затем ARKit начинает обнаруживать самолеты перед вашей камерой.

  3. Нажмите HOST , чтобы войти в режим хостинга. Код комнаты для совместного использования размещенных якорей генерируется и отображается на вашем экране.

  4. Коснитесь самолета, чтобы разместить там облачную привязку.

    • Приложение помещает объект Andy Android на плоскость и прикрепляет к нему якорь.
    • Запрос хоста отправляется на конечную точку облака ARCore API. Запрос хоста включает данные, представляющие положение привязки относительно визуальных объектов рядом с ней.
    • После размещения привязки она получает идентификатор, который используется для разрешения облачных привязок в этом пространстве.
  5. Нажмите RESOLVE и введите код комнаты, чтобы получить доступ к ранее размещенным облачным привязкам для этой комнаты с помощью того же или другого устройства.

    • Запрос на разрешение отправляется в конечную точку облака API ARCore.
    • Запрос на разрешение включает идентификатор облачной привязки. Если идентификатор соответствует размещенному привязке и локализация прошла успешно, сервер возвращает преобразование привязки в ваших локальных координатах.
    • Пример приложения использует преобразование для добавления привязки к сцене и рендеринга прикрепленных к ней виртуальных объектов.

Добавьте ARCore SDK в свои приложения

В ваших собственных приложениях вам необходимо обновить Podfile , включив в него ARCore SDK и поддерживаемые версии iOS. Для этого:

  1. Добавьте следующую platform и pod в Podfile вашего проекта:

        platform :ios, '11.0'
        pod 'ARCore/CloudAnchors', '~> 1.46.0'
    
  1. Откройте окно терминала и запустите pod update из папки, где находится ваш проект Xcode.
    При этом создается файл .xcworkspace , который вы используете для сборки и запуска приложения.

Постоянные облачные якоря

Как описано в разделе «Размещение облачной привязки с постоянством» , вы можете задать срок жизни облачной привязки до 365 дней. Пример кода для использования постоянных облачных привязок доступен в каталоге /arcore-ios-sdk-master/Examples/PersistentCloudAnchorExample в ARCore SDK для iOS на GitHub .

Следующие шаги