В этом примере приложения для iOS используются Google Home API. В этом руководстве рассказывается, как собрать и запустить приложение в первый раз.
Требования
Убедитесь, что вы соблюдаете минимальные требования для использования API Home для iOS.
Чтобы создать и установить образец приложения, вам понадобится компьютер с Xcode версии 15.3 или более поздней.
Для тестирования приложения вам понадобится:
- Аккаунт Google.
- Идентификатор Apple ID, зарегистрированный в программе Apple Developer, для создания файлов конфигурации физических устройств. Если вы ещё не создали аккаунт, регистрация будет платной и может занять до 48 часов.
- Устройство iOS (не симулятор) с iOS 16.4 или более поздней версии, настроенное с тестовым аккаунтом.
- Сеть Wi-Fi.
- Контроллер Google, поддерживающий Home API.
- Thread Border Router (TBR), если устройству требуется поддержка 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.
Измените созданный идентификатор приложения и настройте возможность Группы приложений, чтобы добавить зарегистрированный идентификатор группы приложений.
Создайте профиль инициализации для разработки, чтобы разрабатывать приложения. Свяжите его с созданным идентификатором приложения и выбранными тестовыми устройствами. Убедитесь, что у вас есть сертификат разработчика для подписи приложения.
- Если у вас его ещё нет, следуйте инструкциям в статье Как создать сертификаты Developer ID.
- Выберите уникальный и информативный идентификатор пакета приложения. Например, его можно отформатировать как
Создайте профиль для
MatterExtension.- Выберите идентификатор пакета приложения для
MatterExtension. Идентификатор должен быть унаследован от идентификатора приложения. Например, его можно отформатировать какcom.company.HomeApiSample.MatterExtension. - Зарегистрируйте идентификатор приложения. Когда появится запрос, добавьте возможность Группа приложений.
- Измените созданный идентификатор приложения и настройте возможность Группы приложений, чтобы добавить зарегистрированный идентификатор группы приложений, созданный на предыдущих шагах.
- Создайте профиль инициализации для разработки для
MatterExtension.
- Выберите идентификатор пакета приложения для
Как сгенерировать идентификатор клиента OAuth и включить 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. Остальные поля заполнять не обязательно.
- Нажмите СОЗДАТЬ и запишите созданный идентификатор клиента или выберите СКАЧАТЬ PLIST. Он будет использоваться позже, чтобы включить функцию запроса разрешений. Подробнее о том, как создать учетные данные для авторизации…
- Нажмите кнопку Создать учетные данные и выберите Идентификатор клиента OAuth.
Как включить Home API
Включите доступ к Home API.
- На вкладке API и сервисы нажмите Включенные API и сервисы.
- Вверху страницы нажмите Включить API и сервисы.
- Найдите и выберите
HOME API. - На странице сведений об API для умного дома нажмите Включить.
Как скачать исходный код
Исходный код примера приложения доступен на GitHub.
Перейдите в папку, в которой хотите сохранить проект, и клонируйте его:
git clone https://github.com/google-home/google-home-api-sample-app-ios.gitЧтобы загрузить проект в Xcode, нажмите File (Файл) > Open (Открыть) и выберите GoogleHomeAPISampleIOS.xcodeproj в корне клонированного репозитория.
Как добавить SDK в проект
Для сборки проекта Sample App требуется дополнительная информация. В частности, вам нужно добавить файлы фреймворка SDK, указать идентификатор аккаунта разработчика и идентификатор клиента OAuth.
Создайте приложение
Чтобы скачать Home APIs iOS SDK, сначала войдите в аккаунт Google Home Developers.
Настройте проект Xcode для примера приложения:
- Распакуйте скачанный SDK в каталог
ThirdParty/GoogleHomeSDKотносительно корневого каталога проекта. - Настройте идентификаторы разработчика и клиента OAuth:
- На панели навигации найдите папку GoogleHomeAPISampleIOS и откройте файл Info.plist для редактирования.
В файле Info.plist заполните поле GIDClientID идентификатором клиента OAuth (см. раздел Настройка запроса согласия OAuth), поле Cloud Project Number номером облачного проекта, а поле GIDTeamID – идентификатором команды разработчиков Apple аккаунта разработчика, использованного при регистрации OAuth.
Добавьте возможность App Attest:
- На панели навигации Xcode выберите файл проекта
GoogleHomeAPISampleIOS, чтобы изменить конфигурацию проекта. - Нажмите на вкладку Подписание и возможности вверху и выберите целевой
GoogleHomeAPISampleIOSслева в разделе "Цели". - Под вкладкой Signing and Capabilities (Подписание и возможности) нажмите + Capability (+ Возможность) и найдите App Attest.
- Нажмите App Attest, чтобы добавить. Если в результатах поиска нет нужной функции, возможно, она уже добавлена в проект.
- На панели навигации Xcode выберите файл проекта
Добавьте возможность Группы приложений.

- Откройте проект GoogleHomeAPISampleIOS > цель GoogleHomeAPISampleIOS.
- Нажмите Подписание и возможности > + Возможность.
- Выберите функцию Группы приложений.
- Нажмите на значок + под разделом Группы приложений и добавьте идентификатор группы приложений, который вы указали на портале разработчика Apple.
- Повторите эти шаги для цели MatterAddDeviceExtension, чтобы добавить ее в группы приложений.
Как изменить идентификатор пакета
- Чтобы запустить и развернуть образец приложения на устройстве с использованием сертификатов разработчика и профилей инициализации, вам потребуется указать уникальный идентификатор пакета. Это должен быть тот же идентификатор, который связан с учетными данными клиента OAuth (см. выше).
- На панели навигации Xcode выберите файл проекта
GoogleHomeAPISampleIOS, чтобы изменить конфигурацию проекта. - Нажмите на вкладку Подписание и возможности вверху и выберите целевой
GoogleHomeAPISampleIOSслева в разделе "Цели". - Выберите поле "Идентификатор пакета" в разделе Подпись и введите уникальный идентификатор приложения.
- Выберите или установите профиль инициализации, связанный с этим пакетом, с необходимыми правами.
- Повторите эти шаги для цели
MatterAddDeviceExtension, чтобы ввести идентификатор пакета для расширения и импортировать его зарегистрированный профиль инициализации.
Обновите зарегистрированный идентификатор группы приложений в коде.
- Приложению необходимо настроить экземпляр SDK, чтобы использовать идентификатор группы приложений для таких функций, как инициализация устройства. Обновите приложение, чтобы использовать идентификатор группы приложений, зарегистрированный на портале разработчиков Apple. Для этого найдите строку
HOME_API_TODO_ADD_APP_GROUPи замените ее на идентификатор.
Эти настройки задаются в следующих файлах:
GoogleHomeAPISampleIOS.swiftпри инициализации SDK.RequestHandler.swiftCommissioningManager.swift
- Приложению необходимо настроить экземпляр SDK, чтобы использовать идентификатор группы приложений для таких функций, как инициализация устройства. Обновите приложение, чтобы использовать идентификатор группы приложений, зарегистрированный на портале разработчиков Apple. Для этого найдите строку