Этот пример приложения для iOS использует API Google Home. Используйте это руководство для первой сборки и запуска приложения.
Предпосылки
Убедитесь, что у вас есть минимальные требования для использования Home API для iOS.
Для сборки и установки примера приложения вам понадобится компьютер с установленной версией Xcode 15.3+.
Для тестирования приложения вам понадобится:
- Аккаунт Google .
- Apple ID, зарегистрированный в программе Apple Developer Program для создания файлов конфигурации физических устройств. Если он ещё не создан, регистрация потребует дополнительной оплаты и может занять до 48 часов.
- Устройство iOS (не симулятор) под управлением iOS 16.4+, настроенное с тестовой учетной записью.
- Сеть Wi-Fi.
- Центр Google, поддерживающий Home API .
- Пограничный маршрутизатор Thread, если вашему устройству требуется Thread, а ваш концентратор не имеет такой возможности.
- По крайней мере один поддерживаемый тип устройства .
Для разработки вам понадобится Mac, отвечающий следующим требованиям:
- macOS Sonoma или более поздняя версия
- Xcode 15.3 или более поздняя версия
Создание файлов конфигурации развертывания Apple
Во-первых, для приложения требуется включить функцию App Attest . Поэтому его невозможно развернуть на устройствах-симуляторах. Для этого необходимо создать профиль подготовки с правом App Attest .
Во-вторых, для взаимодействия между приложением и MatterExtension
необходимо включить группы приложений. Для этого необходимо зарегистрировать идентификатор группы приложений.
Более подробную информацию см. в статье Apple «Создание профиля обеспечения разработки» на странице профилей обеспечения.
Ниже описаны минимальные шаги, необходимые для развертывания приложения:
- Создайте идентификатор группы приложений, чтобы ваше приложение могло взаимодействовать с
MatterExtension
.- Войдите на портал разработчиков Apple .
- Добавьте идентификатор группы приложений . Например, он может иметь формат
group.com.company.commissioning
.
- Зарегистрируйте свое тестовое устройство в учетной записи разработчика.
Создайте профиль для вашего целевого приложения.
- Выберите идентификатор пакета приложения для вашего приложения. Идентификатор должен быть уникальным и описательным. Например, он может быть отформатирован как
com.company.HomeApiSample
. Этот идентификатор будет использоваться далее в этом разделе. - Зарегистрируйте свой идентификатор приложения . При появлении запроса добавьте возможности App Attest и App Groups .
Отредактируйте недавно созданный идентификатор приложения и настройте возможность групп приложений , чтобы добавить зарегистрированный идентификатор группы приложений.
Создайте профиль обеспечения разработки для вашего приложения. Свяжите его с вашим новым идентификатором приложения и выбранными тестовыми устройствами. Убедитесь, что у вас есть сертификат разработчика для подписи приложения.
- Если вы еще этого не сделали, инструкции см. в разделе Создание сертификатов идентификатора разработчика .
- Выберите идентификатор пакета приложения для вашего приложения. Идентификатор должен быть уникальным и описательным. Например, он может быть отформатирован как
Создайте профиль для вашего целевого объекта
MatterExtension
.- Выберите идентификатор пакета приложения для вашего
MatterExtension
. Идентификатор должен быть унаследован от идентификатора приложения. Например, он может быть отформатирован какcom.company.HomeApiSample.MatterExtension
. - Зарегистрируйте свой идентификатор приложения . При появлении запроса добавьте возможность группы приложений .
- Отредактируйте только что созданный идентификатор приложения и настройте возможность групп приложений , чтобы добавить зарегистрированный идентификатор группы приложений, созданный на предыдущих шагах.
- Создайте профиль обеспечения разработки для
MatterExtension
.
- Выберите идентификатор пакета приложения для вашего
Сгенерируйте идентификатор клиента OAuth и включите Home API
Вашему приложению необходим идентификатор клиента OAuth для идентификации в системе аутентификации Google. Для iOS и приложений тип приложения идентификатора клиента OAuth должен быть настроен как iOS. Приложение также будет выполнять вызовы к Home API. Для включения этой функции API должен быть включен в проекте Google Cloud .
Сгенерируйте идентификатор клиента OAuth
- В консоли Google Cloud перейдите на панель выбора проектов и выберите проект, который вы хотите использовать для создания учетных данных OAuth.
- Перейдите на страницу API и сервисы, нажав кнопку меню в левом верхнем углу > Просмотреть все продукты > API и сервисы .
- В навигационном меню нажмите Учетные данные .
Если вы ещё не настроили экран согласия для этого проекта Google Cloud, появится кнопка «Настроить экран согласия» . В этом случае настройте экран согласия, следуя следующей процедуре. Если экран согласия OAuth уже настроен и его статус публикации — «Тестирование» , убедитесь, что тестовые учётные записи, которые вы будете использовать, добавлены в группу «Тестовые пользователи» . В противном случае перейдите к следующему шагу.
- В зависимости от вашего варианта использования выберите «Внутренний» или «Внешний» , а затем нажмите «Создать» . Откроется экран согласия OAuth .
- Введите информацию на странице «Информация о приложении» в соответствии с инструкциями на экране, затем нажмите «Сохранить и продолжить» . Откроется панель «Области действия».
- Добавлять области действия не нужно, поэтому нажмите «Сохранить и продолжить» . Откроется панель «Тестовые пользователи» .
- Если вы решили создать внутренний экран согласия, необходимо добавить пользователей для тестового доступа к приложению. Нажмите «Добавить пользователей» . Откроется панель «Добавить пользователей» . Тестовые пользователи имеют право предоставлять разрешения в вашем приложении. В пустом поле добавьте один или несколько адресов электронной почты учётной записи Google и нажмите «Добавить» .
- Нажмите «Сохранить и продолжить» . Откроется панель «Сводка» .
- Проверьте информацию на экране согласия OAuth, а затем нажмите « Вернуться на панель управления» .
На левой панели меню нажмите «Учетные данные» , чтобы создать идентификатор клиента OAuth.
- Нажмите кнопку СОЗДАТЬ УЧЕТНЫЕ ДАННЫЕ и выберите Идентификатор клиента OAuth .
- В качестве типа приложения выберите iOS .
- Введите идентификатор пакета , включающий идентификатор вашего приложения и идентификатор команды разработчиков Apple . Остальные поля необязательны и могут быть оставлены пустыми.
- Нажмите кнопку «СОЗДАТЬ» и запишите созданный Client ID или DOWNLOAD PLIST . Он будет использоваться позже для включения функции потоков разрешений. Подробнее см. в разделе «Создание учётных данных авторизации» .
- Нажмите кнопку СОЗДАТЬ УЧЕТНЫЕ ДАННЫЕ и выберите Идентификатор клиента OAuth .
Включить Home API
Включить доступ к API Home.
- На вкладке API и службы нажмите Включенные API и службы .
- Нажмите ВКЛЮЧИТЬ API И СЕРВИСЫ в верхней части страницы.
- Найдите
HOME API
и выберите его. - На странице сведений о 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.
Создайте приложение
Чтобы загрузить Home APIs iOS SDK, сначала необходимо войти в систему Google Home Developers.
Настройте свой проект Xcode для примера приложения:
На панели навигации Xcode выберите файл
GoogleHomeAPISampleIOS
, чтобы изменить конфигурацию проекта.Нажмите вкладку «Общие» вверху и выберите целевой
GoogleHomeAPISampleIOS
слева.Прокрутите страницу вниз, пока не увидите раздел «Фреймворки, библиотеки и встроенный контент» . В нём вы увидите два фреймворка Home API.
В столбце «Встроить» выберите «Встроить и подписать» для
GoogleHomeSDK.xcframework
. Для другого фреймворка,GoogleHomeTypes.xcframework
, следует оставить значение «Не встраивать» .Внизу списка нажмите значок + .
При появлении запроса найдите
SafariServices.framework
и нажмите кнопку «Добавить» . Убедитесь, что в столбце «Встроить» для этой записи установлено значение «Не встраивать» .Щелкните
MatterAddDeviceExtension
в разделе Target , чтобы изменить его цель.Прокрутите страницу вниз, пока не увидите раздел «Фреймворки и библиотеки» . В нём должен быть
GoogleHomeSDK.xcframework
.В столбце «Встроить» выберите «Не встраивать» .
Настройте идентификаторы разработчика и клиента OAuth:
- В панели навигации найдите папку GoogleHomeAPISampleIOS и откройте файл Info.plist для редактирования.
В файле Info.plist заполните поле GIDClientID идентификатором вашего клиента OAuth (см. раздел «Настройка согласия OAuth» ), номером облачного проекта, соответствующим вашему облачному проекту, а поле GIDTeamID — идентификатором команды разработчиков Apple для учетной записи разработчика, использованной во время процесса регистрации OAuth.
Добавить возможность подтверждения подлинности приложения:
- На панели навигации Xcode выберите файл проекта
GoogleHomeAPISampleIOS
, чтобы изменить конфигурацию проекта. - Нажмите вкладку «Подписание и возможности» вверху и выберите целевой
GoogleHomeAPISampleIOS
слева в разделе «ЦЕЛИ». - Под вкладкой «Подписание и возможности» нажмите + Возможности и найдите App Attest .
- Нажмите «App Attest» , чтобы добавить. Если эта возможность отсутствует в результатах поиска, возможно, она уже добавлена в проект.
- На панели навигации Xcode выберите файл проекта
Добавьте возможность групп приложений .
- Перейдите в проект GoogleHomeAPISampleIOS > цель GoogleHomeAPISampleIOS .
- Нажмите Подписание и возможности > + Возможность .
- Выберите возможность « Группы приложений» .
- Нажмите значок + под группами приложений и добавьте идентификатор групп приложений для вашего приложения, который вы добавили на портале разработчиков Apple.
- Повторите эти шаги для цели MatterAddDeviceExtension , чтобы добавить ее в App Groups .
Обновить идентификатор пакета
- Для успешного запуска и развертывания примера приложения на оборудовании с использованием ваших сертификатов разработчика и профилей подготовки вам потребуется предоставить уникальный идентификатор пакета. Он должен совпадать с идентификатором, связанным с вашими учётными данными клиента OAuth (см. выше).
- На панели навигации Xcode выберите файл проекта
GoogleHomeAPISampleIOS
, чтобы изменить конфигурацию проекта. - Нажмите вкладку «Подписание и возможности» вверху и выберите целевой
GoogleHomeAPISampleIOS
слева в разделе «ЦЕЛИ». - Выберите поле «Идентификатор пакета» в разделе «Подписание» и введите уникальный идентификатор приложения.
- Выберите или установите профиль обеспечения, связанный с этим пакетом, с требуемыми правами.
- Повторите эти шаги для цели
MatterAddDeviceExtension
, чтобы ввести идентификатор пакета для расширения и импортировать его зарегистрированный профиль подготовки.
Обновите зарегистрированный идентификатор группы приложений в коде.
- Приложению необходимо настроить экземпляр SDK для использования идентификатора группы приложений (App Group ID) для таких функций, как ввод в эксплуатацию устройств. Обновите приложение, чтобы использовать идентификатор группы приложений, зарегистрированный на портале разработчиков Apple. Для этого найдите строку
HOME_API_TODO_ADD_APP_GROUP
и замените ею каждый экземпляр.
Эти конфигурации сделаны в следующих файлах:
-
GoogleHomeAPISampleIOS.swift
при инициализации SDK. -
RequestHandler.swift
-
CommissioningManager.swift
- Приложению необходимо настроить экземпляр SDK для использования идентификатора группы приложений (App Group ID) для таких функций, как ввод в эксплуатацию устройств. Обновите приложение, чтобы использовать идентификатор группы приложений, зарегистрированный на портале разработчиков Apple. Для этого найдите строку