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