Этот пример приложения для 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. Для этого найдите строку