Создайте пример приложения iOS

В этом примере iOS-приложения используются API Google Home. Воспользуйтесь этим руководством, чтобы собрать и запустить приложение в первый раз.

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

Убедитесь, что у вас есть минимальные требования для использования API Home для iOS.

Для сборки и установки демонстрационного приложения вам потребуется компьютер с установленной версией Xcode 15.3 или выше.

Скачать Xcode

Для тестирования приложения вам потребуется:

  1. Аккаунт Google .
  2. Для создания файлов конфигурации физического устройства требуется учетная запись Apple ID, зарегистрированная в программе Apple Developer Program . Если учетная запись еще не создана, ее регистрация влечет за собой дополнительные расходы и может занять до 48 часов.
  3. Устройство iOS (не симулятор) с операционной системой iOS 16.4+, настроенное с использованием тестовой учетной записи.
  4. Сеть Wi-Fi.
  5. Центр Google, поддерживающий API Home .
  6. Маршрутизатор Thread Border Router подойдет, если вашему устройству требуется Thread, а ваш хаб такой возможности не поддерживает.
  7. Поддерживается как минимум один тип устройства .

Для разработки вам потребуется компьютер Mac, отвечающий следующим требованиям:

  • macOS Sonoma или более поздняя версия
  • Xcode 15.3 или более поздняя версия

Создайте файлы конфигурации развертывания Apple.

Во-первых, для работы приложения необходимо включить функцию App Attest . В результате его нельзя развернуть на устройствах-симуляторах. Для этого необходимо создать профиль подготовки с разрешением на использование функции App Attest .

Во-вторых, для обеспечения связи между приложением и MatterExtension необходимо включить группы приложений. Для этого требуется зарегистрировать идентификатор группы приложений.

Для получения более подробной информации см. раздел «Создание профиля подготовки для разработчиков» на сайте Apple, посвященный профилям подготовки.

Ниже описаны минимальные шаги, необходимые для развертывания приложения:

  1. Создайте идентификатор группы приложений для вашего приложения, чтобы оно могло взаимодействовать с MatterExtension .
    1. Войдите в портал разработчиков Apple .
    2. Добавьте идентификатор группы приложений . Например, он может быть отформатирован как group.com.company.commissioning .
  2. Зарегистрируйте свое тестовое устройство в учетной записи разработчика.
  3. Создайте профиль для целевого объекта вашего приложения.

    1. Выберите идентификатор пакета приложения для вашего приложения. Идентификатор должен быть уникальным и описательным. Например, он может быть отформатирован следующим образом:com.company.HomeApiSample Этот идентификатор будет использоваться на протяжении всего остального раздела.
    2. Зарегистрируйте свой идентификатор приложения . При появлении запроса добавьте возможности проверки приложений и создания групп приложений .
    3. Отредактируйте созданный идентификатор приложения и настройте параметры групп приложений , чтобы добавить зарегистрированный идентификатор группы приложений.

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

  4. Создайте профиль для целевого объекта MatterExtension .

    1. Выберите идентификатор пакета приложения для вашего MatterExtension . Идентификатор должен наследоваться от идентификатора приложения. Например, он может быть отформатирован следующим образом: com.company.HomeApiSample.MatterExtension .
    2. Зарегистрируйте свой идентификатор приложения . При появлении запроса добавьте возможность создания группы приложений .
    3. Отредактируйте созданный идентификатор приложения и настройте функцию « Группы приложений» , чтобы добавить зарегистрированный идентификатор группы приложений, созданный на предыдущих шагах.
    4. Создайте профиль подготовки для разработки для MatterExtension .

Сгенерируйте идентификатор клиента OAuth и включите API Home.

Вашему приложению необходим идентификатор клиента OAuth для идентификации в системе аутентификации Google. Для iOS и других приложений тип приложения с идентификатором клиента OAuth должен быть настроен как iOS. Приложение также будет выполнять вызовы к API Home. Для включения этой функциональности необходимо активировать API в проекте Google Cloud .

Сгенерируйте идентификатор клиента OAuth.

  1. В консоли Google Cloud перейдите на панель выбора проекта и выберите проект, который вы хотите использовать для создания учетных данных OAuth.
  2. Перейдите на страницу API и сервисов, нажав на кнопку меню в левом верхнем углу > Просмотреть все продукты > API и сервисы .
  3. В навигационном меню нажмите «Учетные данные» .
  4. Если вы еще не настроили экран согласия для этого проекта Google Cloud, появится кнопка « Настроить экран согласия» . В этом случае настройте экран согласия, используя следующую процедуру. Если ваш экран согласия OAuth уже настроен и его статус публикации — «Тестирование» , убедитесь, что тестовые учетные записи, которые вы будете использовать, добавлены в группу «Тестовые пользователи» . В противном случае перейдите к следующему шагу.

    1. В зависимости от вашего сценария использования выберите «Внутренний» или «Внешний» , а затем нажмите «Создать» . Отобразится панель согласия OAuth .
    2. Введите информацию на странице сведений о приложении в соответствии с инструкциями на экране, а затем нажмите «Сохранить и продолжить» . Отобразится панель «Области видимости».
    3. Добавлять какие-либо области действия не нужно, поэтому нажмите «Сохранить и продолжить ». Отобразится панель «Проверка пользователей» .
    4. Если вы решили создать внутренний экран согласия, вам необходимо добавить пользователей для проверки доступа к вашему приложению. Нажмите «Добавить пользователей» . Отобразится панель «Добавить пользователей» . Тестовые пользователи имеют право предоставлять разрешения в вашем приложении. В пустом поле добавьте один или несколько адресов электронной почты учетной записи Google, а затем нажмите «Добавить» .
    5. Нажмите «Сохранить и продолжить» . Отобразится панель «Сводка» .
    6. Проверьте информацию на экране согласия OAuth, а затем нажмите «Назад на панель управления» .
  5. В левой панели меню нажмите «Учетные данные» , чтобы создать идентификатор клиента OAuth.

    Настройка экрана OAuth

    1. Нажмите кнопку «СОЗДАТЬ УЧЕТНЫЕ ДАННЫЕ» и выберите «Идентификатор клиента OAuth» .
      1. В разделе «Тип приложения» выберите iOS .
    2. Введите идентификатор пакета (Bundle ID) вместе с идентификатором вашего приложения и идентификатором команды разработчиков Apple (Apple Developer Team ID ). Остальные поля необязательны и могут быть оставлены пустыми.
    3. Нажмите кнопку СОЗДАТЬ и запишите созданный идентификатор клиента или СПИСОК ЗАГРУЗКИ . Он будет использован позже для включения функциональности потока разрешений. Для получения дополнительной информации см. раздел «Создание учетных данных авторизации» .

Включите API для главной страницы

Разрешите доступ к API главной страницы.

  1. На вкладке «API и сервисы» нажмите «Включенные API и сервисы» .
  2. Нажмите кнопку «Включить API и сервисы» в верхней части страницы.
  3. Найдите HOME API и выберите его.
  4. На странице с подробной информацией о Home API нажмите кнопку ВКЛЮЧИТЬ .

Скачать исходный код

Исходный код демонстрационного приложения доступен на GitHub.

Перейдите в папку, куда хотите сохранить проект, а затем клонируйте его:

git clone https://github.com/google-home/google-home-api-sample-app-ios.git

Чтобы загрузить проект в Xcode, нажмите «Файл» > «Открыть» и выберите файл GoogleHomeAPISampleIOS.xcodeproj в корневом каталоге клонированного репозитория.

Добавьте SDK в проект.

Для сборки проекта Sample App требуется дополнительная информация. Это включает в себя локальное добавление файлов SDK Framework, заполнение информации об идентификаторе вашей учетной записи разработчика и заполнение идентификатора клиента OAuth.

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

Настройте свой проект Xcode для демонстрационного приложения:

  1. Распакуйте загруженный SDK в каталог ThirdParty/GoogleHomeSDK относительно корневого каталога проекта.
  2. Настройте идентификаторы разработчика и клиента OAuth:
    1. В панели навигации найдите папку GoogleHomeAPISampleIOS и откройте файл Info.plist для редактирования.
  3. В файле Info.plist заполните поле GIDClientID идентификатором вашего клиента OAuth (см. раздел «Настройка согласия OAuth» ), номером облачного проекта, соответствующим вашему облачному проекту, и полем GIDTeamID идентификатором команды разработчиков Apple , используемым в процессе регистрации OAuth.

  4. Добавить возможность аттестации приложений:

    1. В панели навигации Xcode выберите файл проекта GoogleHomeAPISampleIOS , чтобы отредактировать конфигурацию проекта.
    2. Вверху нажмите вкладку «Подписание и возможности» и в левой части экрана в разделе «ЦЕЛИ» выберите целевой объект GoogleHomeAPISampleIOS .
    3. Сразу под вкладкой «Подписание и возможности» нажмите кнопку «+ Возможность» и найдите «App Attest» .
    4. Нажмите «Подтверждение приложения» , чтобы добавить эту функцию. Если эта возможность отсутствует в результатах поиска, возможно, она уже добавлена ​​в проект.
  5. Добавить возможность создания групп приложений .

    Добавить группы приложений

    1. Перейдите в проект GoogleHomeAPISampleIOS > целевой объект GoogleHomeAPISampleIOS .
    2. Нажмите «Подписание и возможности» > «+ Возможность» .
    3. Выберите параметр « Группы приложений» .
    4. Нажмите значок «+» под разделом «Группы приложений» и добавьте идентификатор групп приложений для вашего приложения, который вы добавили на портале разработчиков Apple.
    5. Повторите эти шаги для целевого объекта MatterAddDeviceExtension , чтобы добавить его в группы приложений .
  6. Обновите идентификатор пакета.

    1. Для успешного запуска и развертывания демонстрационного приложения на оборудовании с использованием ваших сертификатов разработчика и профилей подготовки вам потребуется указать уникальный идентификатор пакета. Этот идентификатор должен совпадать с идентификатором, связанным с учетными данными вашего клиента OAuth (см. выше).
    2. В панели навигации Xcode выберите файл проекта GoogleHomeAPISampleIOS , чтобы отредактировать конфигурацию проекта.
    3. Вверху нажмите вкладку «Подписание и возможности» и в левой части экрана в разделе «ЦЕЛИ» выберите целевой объект GoogleHomeAPISampleIOS .
    4. В разделе «Подписание» выберите поле «Идентификатор пакета» и введите уникальный идентификатор приложения.
    5. Выберите или установите профиль подготовки, относящийся к этому пакету, с необходимыми правами доступа.
    6. Повторите эти шаги для целевого объекта MatterAddDeviceExtension , чтобы ввести идентификатор пакета для расширения и импортировать зарегистрированный профиль предоставления доступа.
  7. Обновите идентификатор зарегистрированной группы приложений в коде.

    1. Для работы приложения необходимо настроить экземпляр SDK таким образом, чтобы он использовал идентификатор группы приложений для таких функций, как ввод устройства в эксплуатацию. Обновите приложение, чтобы оно использовало идентификатор группы приложений, зарегистрированный на портале разработчиков Apple, найдя строку HOME_API_TODO_ADD_APP_GROUP и заменив ею каждое её упоминание.

    Эти настройки выполняются в следующих файлах:

    • GoogleHomeAPISampleIOS.swift при инициализации SDK.
    • RequestHandler.swift
    • CommissioningManager.swift