Этот пример приложения iOS использует API Google Home. Используйте это руководство для сборки и запуска приложения в первый раз.
Предпосылки
Убедитесь, что у вас есть минимальные требования для использования Home API для iOS.
Для сборки и установки примера приложения вам понадобится компьютер с установленной на нем версией Xcode 15.3+.
Для тестирования приложения вам понадобится:
- Аккаунт Google .
- Apple ID, зарегистрированный в программе разработчиков Apple для генерации файлов конфигурации физических устройств. Если он еще не создан, регистрация потребует дополнительных расходов и может занять до 48 часов.
- Устройство iOS (не симулятор) под управлением iOS 16.4+, настроенное с тестовой учетной записью.
- Сеть Wi-Fi.
- Центр Google, поддерживающий API Home .
- Пограничный маршрутизатор Thread, если вашему устройству требуется Thread, а ваш концентратор не имеет такой возможности.
- По крайней мере один поддерживаемый тип устройства .
Для разработки вам понадобится Mac, отвечающий следующим требованиям:
- macOS Sonoma или более поздняя версия
- Xcode 15.3 или более поздняя версия
Создание файлов конфигурации развертывания Apple
Во-первых, приложение требует, чтобы была включена возможность App Attest . В результате его нельзя развернуть на устройствах-симуляторах. Для этого требуется создать профиль обеспечения с правом App Attest .
Во-вторых, для связи между приложением и MatterExtension
необходимо включить App Groups. Для этого необходимо зарегистрировать идентификатор группы приложений.
Более подробную информацию можно найти в статье Apple «Создание профиля обеспечения разработки» на странице профилей обеспечения.
Ниже описаны минимальные шаги, необходимые для развертывания приложения:
- Создайте идентификатор группы приложений для вашего приложения, чтобы оно могло взаимодействовать с
MatterExtension
.- Войдите на портал разработчиков Apple .
- Добавьте идентификатор группы приложений . Например, он может быть отформатирован как
group.com.company.commissioning
.
- Зарегистрируйте свое тестовое устройство в учетной записи разработчика.
Создайте профиль для вашего целевого приложения.
- Определите идентификатор пакета приложений для вашего приложения. Идентификатор должен быть уникальным и описательным. Например, он может быть отформатирован как
com.company.HomeApiSample
. Этот идентификатор будет использоваться в оставшейся части этого раздела. - Зарегистрируйте свой App ID . При появлении запроса добавьте возможности App Attest и App Groups .
Отредактируйте только что созданный идентификатор приложения и настройте функцию « Группы приложений», чтобы добавить зарегистрированный идентификатор группы приложений.
Создайте профиль обеспечения разработки для разработки вашего приложения. Свяжите его с вашим недавно созданным идентификатором приложения и выбранными тестовыми устройствами. Убедитесь, что у вас есть сертификат разработчика для подписи приложения.
- Если вы еще не создали его, инструкции см. в разделе Создание сертификатов Developer ID .
- Определите идентификатор пакета приложений для вашего приложения. Идентификатор должен быть уникальным и описательным. Например, он может быть отформатирован как
Создайте профиль для вашего целевого объекта
MatterExtension
.- Определите идентификатор пакета приложения для вашего
MatterExtension
. Идентификатор должен быть унаследован от идентификатора приложения. Например, он может быть отформатирован какcom.company.HomeApiSample.MatterExtension
. - Зарегистрируйте свой App ID . При появлении запроса добавьте возможность App Group .
- Отредактируйте только что созданный идентификатор приложения и настройте функцию « Группы приложений» , чтобы добавить зарегистрированный идентификатор группы приложений, созданный на предыдущих шагах.
- Создайте профиль обеспечения разработки для
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 .
- Введите Bundle ID с идентификатором вашего приложения и Apple Developer Team ID . Остальные поля необязательны и могут быть оставлены пустыми.
- Нажмите CREATE и запишите созданный 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
Для сборки проекта примера приложения требуется некоторая дополнительная информация. Это включает локальное добавление файлов SDK Framework, заполнение информации об идентификаторе вашего аккаунта разработчика и заполнение вашего идентификатора клиента OAuth.
Создайте приложение
Чтобы загрузить iOS SDK Home API, вам необходимо сначала войти в систему Google Home Developers.
Настройте свой проект Xcode для примера приложения:
На панели навигации Xcode выберите файл
GoogleHomeAPISampleIOS
, чтобы изменить конфигурацию проекта.Нажмите вкладку «Общие» вверху и выберите целевой
GoogleHomeAPISampleIOS
слева.Прокрутите вниз, пока не увидите раздел Frameworks, Libraries, and Embedded Content . Вы должны увидеть два перечисленных Home API Frameworks.
В столбце Embed выберите Embed & Sign для
GoogleHomeSDK.xcframework
. Другой фреймворк,GoogleHomeTypes.xcframework
, следует оставить как Do Not Embed .Внизу списка нажмите значок + .
При появлении запроса найдите
SafariServices.framework
и нажмите «добавить» . Убедитесь, что столбец «Встроить» установлен на «Не встраивать» для этой записи.Щелкните
MatterAddDeviceExtension
в разделе «Цель» , чтобы изменить ее цель.Прокрутите вниз, пока не увидите раздел Frameworks and Libraries . Вы должны увидеть
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 , чтобы добавить ее в группы приложений .
Обновите идентификатор пакета
- Для успешного запуска и развертывания примера приложения на оборудовании с использованием сертификатов разработчика и профилей обеспечения вам потребуется предоставить уникальный идентификатор пакета. Это должен быть тот же идентификатор, который связан с вашими учетными данными клиента OAuth (см. выше).
- На панели навигации Xcode выберите файл проекта
GoogleHomeAPISampleIOS
, чтобы изменить конфигурацию проекта. - Нажмите вкладку «Подписание и возможности» вверху и выберите целевой
GoogleHomeAPISampleIOS
слева в разделе «ЦЕЛИ». - Выберите поле «Идентификатор пакета» в разделе «Подписание» и введите уникальный идентификатор приложения.
- Выберите или установите профиль обеспечения, связанный с этим пакетом, с требуемыми правами.
- Повторите эти шаги для цели
MatterAddDeviceExtension
, чтобы ввести идентификатор пакета для расширения и импортировать его зарегистрированный профиль подготовки.
Обновите зарегистрированный идентификатор группы приложений в коде.
- Приложение должно настроить экземпляр SDK для использования идентификатора App Group для таких функций, как ввод в эксплуатацию устройства. Обновите приложение, чтобы использовать идентификатор App Group, зарегистрированный на портале разработчиков Apple, выполнив поиск строки
HOME_API_TODO_ADD_APP_GROUP
и заменив ею каждый экземпляр.
Эти конфигурации сделаны в следующих файлах:
-
GoogleHomeAPISampleIOS.swift
при инициализации SDK. -
RequestHandler.swift
-
CommissioningManager.swift
- Приложение должно настроить экземпляр SDK для использования идентификатора App Group для таких функций, как ввод в эксплуатацию устройства. Обновите приложение, чтобы использовать идентификатор App Group, зарегистрированный на портале разработчиков Apple, выполнив поиск строки