В этом примере приложения для iOS используются Google Home API. В этом руководстве рассказывается, как собрать и запустить приложение в первый раз.
Требования
Убедитесь, что вы соответствуете минимальным требованиям для использования Home API для iOS.
Чтобы создать и установить пример приложения, вам понадобится компьютер с Xcode версии 15.3 или более поздней.
Для тестирования приложения вам понадобится:
- Аккаунт Google.
- Идентификатор Apple ID, зарегистрированный в программе Apple Developer, для создания файлов конфигурации физических устройств. Если вы ещё не создали аккаунт, регистрация будет платной и может занять до 48 часов.
- Устройство iOS (не симулятор) с iOS 16.4 или более поздней версии, на котором настроен тестовый аккаунт.
- Сеть Wi-Fi.
- Устройство Google Hub, поддерживающее 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.
Измените только что созданный идентификатор приложения и настройте функцию App Groups (Группы приложений), чтобы добавить зарегистрированный идентификатор группы приложений.
Создайте профиль инициализации для разработки приложения. Свяжите его с созданным идентификатором приложения и выбранными тестовыми устройствами. Убедитесь, что у вас есть сертификат разработчика для подписи приложения.
- Если у вас его нет, следуйте инструкциям в статье Как создать сертификат Developer ID.
- Выберите идентификатор пакета приложения. Он должен быть уникальным и описательным. Например, его можно отформатировать как
Создайте профиль для целевой аудитории
MatterExtension.- Выберите идентификатор пакета приложения для
MatterExtension. Идентификатор должен быть унаследован от идентификатора приложения. Например,com.company.HomeApiSample.MatterExtension. - Зарегистрируйте идентификатор приложения. При появлении запроса добавьте функцию App Group (Группа приложений).
- Измените созданный идентификатор приложения и настройте функцию App Groups (Группы приложений), чтобы добавить зарегистрированный идентификатор группы приложений, созданный на предыдущих шагах.
- Создайте профиль инициализации для разработки для
MatterExtension.
- Выберите идентификатор пакета приложения для
Как сгенерировать идентификатор клиента OAuth и включить API для умного дома
Приложению нужен идентификатор клиента OAuth, чтобы идентифицировать себя в системе аутентификации Google. Для приложений iOS тип приложения с идентификатором клиента OAuth должен быть настроен как iOS. Приложение также будет вызывать Home API. Чтобы включить эту функцию, API должен быть включен в проекте Google Cloud.
Как создать идентификатор клиента OAuth
- В консоли Google Cloud перейдите на панель выбора проекта и выберите проект, который хотите использовать для создания учетных данных OAuth.
- Перейдите на страницу "API и сервисы". Для этого нажмите на кнопку меню в левом верхнем углу и выберите View All Products (Посмотреть все продукты) > APIs & Services (API и сервисы).
- В меню навигации нажмите Учетные данные.
Если вы ещё не настроили окно запроса доступа для этого проекта Google Cloud, появится кнопка Настроить окно запроса доступа. В этом случае настройте окно запроса доступа, следуя инструкциям ниже. Если окно запроса доступа OAuth уже настроено и его статус публикации – Тестирование, убедитесь, что тестовые аккаунты, которые вы будете использовать, добавлены в группу Тестовые пользователи. В противном случае перейдите к следующему шагу.
- В зависимости от варианта использования выберите Внутреннее или Внешнее и нажмите Создать. Откроется панель Окно запроса доступа OAuth.
- Введите информацию на странице Информация о приложении, следуя инструкциям на экране, и нажмите Сохранить и продолжить. Откроется панель "Области действия".
- Добавлять области действия не нужно, поэтому нажмите Сохранить и продолжить. Откроется панель Тестовые пользователи.
- Если вы решили создать внутреннее окно запроса доступа, вам нужно добавить пользователей, чтобы протестировать доступ к приложению. Нажмите Добавить пользователей. Откроется панель Добавить пользователей. Тестовые пользователи могут предоставлять разрешения в вашем приложении. В пустом поле добавьте один или несколько адресов электронной почты аккаунтов Google и нажмите Добавить.
- Нажмите Сохранить и продолжить. Откроется панель Сводка.
- Проверьте информацию в окне запроса доступа OAuth и нажмите Вернуться на панель управления.
На панели меню слева нажмите Учетные данные, чтобы создать идентификатор клиента OAuth.

- Нажмите кнопку Создать учетные данные и выберите Идентификатор клиента OAuth.
- В разделе Тип приложения выберите iOS.
- В поле Идентификатор пакета укажите идентификатор приложения и идентификатор команды Apple Developer. Остальные поля заполнять не обязательно.
- Нажмите Создать и запишите созданный идентификатор клиента или нажмите Скачать PLIST. Он будет использоваться позже, чтобы включить функцию запроса разрешений. Подробнее о том, как создать учетные данные для авторизации…
- Нажмите кнопку Создать учетные данные и выберите Идентификатор клиента OAuth.
Как включить Home API
Включите доступ к Home API.
- На вкладке APIs and Services (API и сервисы) нажмите Enabled APIs & Services (Включенные 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 Framework, а также указать идентификатор аккаунта разработчика и идентификатор клиента 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.
- Нажмите Подписание и возможности > + Возможность.
- Выберите функцию Группы приложений.
- Нажмите на значок + в разделе App Groups (Группы приложений) и добавьте идентификатор группы приложений для вашего приложения, который вы добавили на портале для разработчиков Apple.
- Повторите эти шаги для цели MatterAddDeviceExtension, чтобы добавить ее в App Groups.
Обновите идентификатор пакета
- Чтобы запустить и развернуть образец приложения на устройстве с использованием сертификатов разработчика и профилей инициализации, вам потребуется указать уникальный идентификатор пакета. Это должен быть тот же идентификатор, который связан с учетными данными клиента OAuth (см. выше).
- На панели навигации Xcode выберите файл проекта
GoogleHomeAPISampleIOS, чтобы изменить конфигурацию проекта. - Вверху откройте вкладку Signing and Capabilities (Подпись и возможности) и в разделе TARGETS (Цели) слева выберите цель
GoogleHomeAPISampleIOS. - В разделе Signing (Подпись) выберите поле Bundle Identifier (Идентификатор пакета) и введите уникальный идентификатор приложения.
- Выберите или установите профиль инициализации, связанный с этим пакетом, с необходимыми правами.
- Повторите эти шаги для цели
MatterAddDeviceExtension, чтобы ввести идентификатор пакета для расширения и импортировать его зарегистрированный профиль инициализации.
Обновите зарегистрированный идентификатор группы приложений в коде.
- Приложение должно настроить экземпляр SDK, чтобы использовать идентификатор группы приложений для таких функций, как ввод устройства в эксплуатацию. Обновите приложение, чтобы использовать идентификатор группы приложений, зарегистрированный на портале Apple Developer Portal. Для этого найдите строку
HOME_API_TODO_ADD_APP_GROUPи замените каждый ее экземпляр на идентификатор.
Эти настройки задаются в следующих файлах:
GoogleHomeAPISampleIOS.swiftпри инициализации SDK.RequestHandler.swiftCommissioningManager.swift
- Приложение должно настроить экземпляр SDK, чтобы использовать идентификатор группы приложений для таких функций, как ввод устройства в эксплуатацию. Обновите приложение, чтобы использовать идентификатор группы приложений, зарегистрированный на портале Apple Developer Portal. Для этого найдите строку
Настройте область действия OAuth в
GoogleHomeAPISampleIOS.swift. По умолчанию в исходном коде примера приложения используется область действияhttps://www.googleapis.com/auth/home.platform.v2. Многие функции в примере приложения доступны только при наличии области действияhome.platform.v2и требуют одобрения партнера. Чтобы запустить пример приложения со стандартной областью действияhttps://www.googleapis.com/auth/home.platform.selected.devices, откройтеGoogleHomeAPISampleIOS.swiftи изменитеhomePlatformOAuthScopeвHome.configureнаHomePlatformOAuthScope.v1:Home.configure { $0.sharedAppGroup = "HOME_API_TODO_ADD_APP_GROUP" $0.homePlatformOAuthScope = HomePlatformOAuthScope.v1 ... }