Cet exemple d'application iOS utilise les API Google Home. Utilisez ce guide pour créer et exécuter l'application pour la première fois.
Prérequis
Assurez-vous de disposer des conditions minimales requises pour utiliser les API Home pour iOS.
Pour compiler et installer l'application exemple, vous avez besoin d'un ordinateur sur lequel la version 15.3 ou ultérieure de Xcode est installée.
Pour tester l'application, vous avez besoin des éléments suivants:
- Un compte Google enregistré dans le programme EAP des API Home servant de compte de test.
- Un ID Apple enregistré dans le programme de développement Apple pour générer des fichiers de configuration d'appareils physiques. Si ce n'est pas déjà fait, l'inscription entraîne des frais supplémentaires et peut prendre jusqu'à 48 heures.
- Un appareil iOS (pas un simulateur) équipé d'iOS 16.4 ou version ultérieure configuré avec le compte de test.
- Un réseau Wi-Fi
- Un hub Google compatible avec les API Home.
- Un routeur de bordure Thread si votre appareil nécessite Thread et que votre hub ne dispose pas de cette fonctionnalité.
- Au moins un type d'appareil compatible
Pour le développement, vous avez besoin d'un Mac qui répond aux exigences suivantes:
- macOS Sonoma ou version ultérieure
- Xcode 15.3 ou version ultérieure
Créer des fichiers de configuration de déploiement Apple
Tout d'abord, une application doit avoir activé la fonctionnalité App Attest (Attestation d'application). Par conséquent, il ne peut pas être déployé sur des appareils de simulation. Pour ce faire, vous devez créer un profil de provisionnement avec le droit d'accès App Attest.
Deuxièmement, les groupes d'applications doivent être activés pour la communication entre l'application et le MatterExtension
. Pour ce faire, vous devez enregistrer un identifiant de groupe d'applications.
Pour en savoir plus, consultez la section Créer un profil de provisionnement de développement d'Apple sur les profils de provisionnement.
Vous trouverez ci-dessous les étapes minimales requises pour déployer une application:
- Créez un identifiant de groupe d'applications pour que votre application puisse communiquer avec
MatterExtension
.- Connectez-vous au portail des développeurs Apple.
- Ajoutez un identifiant de groupe d'applications. Par exemple, il peut être au format
group.com.company.commissioning
.
- Enregistrez votre appareil de test dans le compte du développeur.
Créez un profil pour la cible de votre application.
- Choisissez un identifiant de bundle d'application pour votre application. Cet identifiant doit être unique et descriptif. Par exemple, il peut être au format
com.company.HomeApiSample
. Cet identifiant sera utilisé tout au long de cette section. - Enregistrez votre ID d'application. Lorsque vous y êtes invité, ajoutez les fonctionnalités App Attest (Attestation d'application) et App Groups (Groupes d'applications).
Modifiez l'ID d'application nouvellement créé et configurez la fonctionnalité Groupes d'applications pour ajouter l'identifiant de groupe d'applications enregistré.
Créez un profil de configuration de développement pour le développement de votre application. Associez-le à votre ID d'application nouvellement créé et aux appareils de test sélectionnés. Assurez-vous de disposer d'un certificat de développeur pour signer l'application.
- Si vous n'en avez pas encore créé, consultez Créer des certificats d'identifiant de développeur pour obtenir des instructions.
- Choisissez un identifiant de bundle d'application pour votre application. Cet identifiant doit être unique et descriptif. Par exemple, il peut être au format
Créez un profil pour votre cible
MatterExtension
.- Choisissez un identifiant de bundle d'application pour votre
MatterExtension
. L'identifiant doit être hérité de l'identifiant de l'application. Par exemple, il peut être au formatcom.company.HomeApiSample.MatterExtension
. - Enregistrez votre ID d'application. Lorsque vous y êtes invité, ajoutez la fonctionnalité Groupe d'applications.
- Modifiez l'ID d'application nouvellement créé et configurez la fonctionnalité Groupes d'applications pour ajouter l'identifiant de groupe d'applications enregistré créé aux étapes précédentes.
- Créez un profil de provisionnement de développement pour
MatterExtension
.
- Choisissez un identifiant de bundle d'application pour votre
Générer l'ID client OAuth et activer les API Home
Votre application a besoin d'un ID client OAuth pour s'identifier auprès du backend d'authentification de Google. Pour iOS et les applications, le type d'application de l'ID client OAuth doit être configuré sur iOS. L'application appelle également l'API Home. Pour activer cette fonctionnalité, l'API doit être activée dans le projet Google Cloud.
Générer l'ID client OAuth
- Dans la console Google Cloud, accédez au tableau de bord du sélecteur de projet, puis sélectionnez le projet que vous souhaitez utiliser pour créer des identifiants OAuth.
- Accédez à la page "API et services" en cliquant sur le bouton de menu en haut à gauche > Afficher tous les produits > API et services.
- Dans le menu de navigation, cliquez sur Identifiants.
Si vous n'avez pas encore configuré votre écran de consentement pour ce projet Google Cloud, le bouton Configurer l'écran de consentement s'affiche. Dans ce cas, configurez votre écran de consentement en suivant la procédure ci-dessous. Si votre écran de consentement OAuth a déjà été configuré et que son état de publication est Test, assurez-vous que les comptes de test que vous utiliserez sont ajoutés au groupe Utilisateurs tests. Sinon, passez à l'étape suivante.
- Selon votre cas d'utilisation, sélectionnez Interne ou Externe, puis cliquez sur Créer. Le volet Écran de consentement OAuth s'affiche.
- Saisissez les informations sur la page Informations sur l'application en suivant les instructions à l'écran, puis cliquez sur Enregistrer et continuer. Le volet "Champs d'application" s'affiche.
- Vous n'avez pas besoin d'ajouter de champs d'application. Cliquez donc sur Enregistrer et continuer. Le volet Utilisateurs de test s'affiche.
- Si vous avez choisi de créer un écran d'autorisation interne, vous devez ajouter des utilisateurs pour tester l'accès à votre application. Cliquez sur Ajouter des utilisateurs. Le volet Ajouter des utilisateurs s'affiche. Les utilisateurs tests ont le droit d'accorder des autorisations dans votre application. Dans le champ vide, ajoutez une ou plusieurs adresses e-mail de compte Google, puis cliquez sur Ajouter.
- Cliquez sur Enregistrer et continuer. Le volet Summary (Récapitulatif) s'affiche.
- Vérifiez les informations de votre écran de consentement OAuth, puis cliquez sur Retour au tableau de bord.
Dans le panneau de menu de gauche, cliquez sur Identifiants pour créer votre ID client OAuth.
- Cliquez sur le bouton CREATE CREDENTIALS (CRÉER DES IDENTIFIANTS), puis sélectionnez OAuth client ID (ID client OAuth).
- Sous Type d'application, sélectionnez iOS.
- Saisissez l'ID du bundle avec l'identifiant de votre application et l'ID d'équipe du développeur Apple. Les autres champs sont facultatifs et peuvent être laissés vides.
- Cliquez sur CREATE (CRÉER), puis notez l'ID client ou le DOWNLOAD PLIST (TÉLÉCHARGER LA PLIST) créé. Il sera utilisé plus tard pour activer la fonctionnalité de flux d'autorisations. Pour en savoir plus, consultez la section Créer des identifiants d'autorisation.
- Cliquez sur le bouton CREATE CREDENTIALS (CRÉER DES IDENTIFIANTS), puis sélectionnez OAuth client ID (ID client OAuth).
Activer les API Home
Activez l'accès aux API Home.
- Dans l'onglet API et services, cliquez sur API et services activés.
- Cliquez sur ACTIVER DES API ET DES SERVICES en haut de la page.
- Recherchez
HOME API
, puis sélectionnez-le. - Sur la page d'informations de l'API Home, cliquez sur ACTIVER.
Télécharger le code source
Le code source de l'application exemple est disponible sur GitHub.
Accédez à l'emplacement où vous souhaitez enregistrer le projet, puis clonez-le:
git clone https://github.com/google-home/google-home-api-sample-app-ios.git
Pour charger le projet dans Xcode, cliquez sur File > Open (Fichier > Ouvrir), puis sélectionnez GoogleHomeAPISampleIOS.xcodeproj
à la racine du dépôt cloné.
Configurez le SDK
Pour compiler l'exemple d'application, vous devez fournir des informations supplémentaires. Cela inclut l'ajout local des fichiers du framework du SDK, le remplissage des informations d'identification de votre compte de développeur et le remplissage de votre ID client OAuth.
Développer l'application
Pour télécharger le SDK iOS des API Home, vous devez d'abord être connecté à Google Home Developers.
Configurez votre projet Xcode pour l'application exemple:
Dans le volet de navigation Xcode, sélectionnez le fichier
GoogleHomeAPISampleIOS
pour modifier la configuration du projet.Cliquez sur l'onglet Général en haut de la page, puis sélectionnez la cible
GoogleHomeAPISampleIOS
à gauche.Faites défiler la page vers le bas jusqu'à la section Frameworks, bibliothèques et contenu intégré. Les deux frameworks d'API Home devraient s'afficher.
Dans la colonne Intégration, sélectionnez Intégrer et signer pour
GoogleHomeSDK.xcframework
. L'autre framework,GoogleHomeTypes.xcframework
, doit rester défini sur Ne pas intégrer.En bas de la liste, cliquez sur l'icône +.
Lorsque vous y êtes invité, recherchez
SafariServices.framework
, puis cliquez sur Ajouter. Assurez-vous que la colonne Intégration est définie sur Ne pas intégrer pour cette entrée.Cliquez sur
MatterAddDeviceExtension
sous Cible pour modifier sa cible.Faites défiler la page vers le bas jusqu'à la section Frameworks et bibliothèques.
GoogleHomeSDK.xcframework
doit s'afficher.Dans la colonne Intégrer, sélectionnez Ne pas intégrer.
Configurez les ID client du développeur et OAuth:
- Dans le volet de navigation, recherchez le dossier GoogleHomeAPISampleIOS et ouvrez le fichier Info.plist pour le modifier.
Dans le fichier Info.plist, renseignez GIDClientID avec votre ID client OAuth (voir la section Configurer le consentement OAuth) et GIDTeamID avec l'ID d'équipe de développeur Apple du compte de développeur utilisé lors du processus d'enregistrement OAuth.
Configurez le système de compilation:
- Dans le volet de navigation Xcode, sélectionnez le fichier de projet
GoogleHomeAPISampleIOS
pour modifier la configuration du projet. - Cliquez sur l'onglet Build Settings (Paramètres de compilation) en haut de la page, puis sélectionnez la cible
GoogleHomeAPISampleIOS
sur la gauche, sous la section "TARGETS" (CIBLES). - Recherchez Other Linker Flags (Autres indicateurs de l'éditeur de liens) et ajoutez deux entrées :
-lc++
-ObjC
- Dans le volet de navigation Xcode, sélectionnez le fichier de projet
Ajoutez la capacité d'attestation d'application:
- Dans le volet de navigation Xcode, sélectionnez le fichier de projet
GoogleHomeAPISampleIOS
pour modifier la configuration du projet. - Cliquez sur l'onglet Signature et fonctionnalités en haut de la page, puis sélectionnez la cible
GoogleHomeAPISampleIOS
sur la gauche, sous la section "CIBLES". - Juste sous l'onglet "Signature et fonctionnalités", cliquez sur + Fonctionnalité, puis recherchez App Attest.
- Cliquez sur App Attest (Attestation d'application) pour l'ajouter. Si cette fonctionnalité est manquante dans la recherche, il est possible que le projet l'ait déjà ajoutée.
- Dans le volet de navigation Xcode, sélectionnez le fichier de projet
Ajoutez la fonctionnalité Groupes d'applications.
- Accédez au projet GoogleHomeAPISampleIOS > cible GoogleHomeAPISampleIOS.
- Cliquez sur Signature et fonctionnalités > + Fonctionnalité.
- Sélectionnez la fonctionnalité Groupes d'applications.
- Cliquez sur l'icône + sous App Groups (Groupes d'applications) et ajoutez l'identifiant de groupe d'applications de votre application que vous avez ajouté sur le portail pour les développeurs Apple.
- Répétez ces étapes pour la cible MatterAddDeviceExtension afin de l'ajouter aux groupes d'applications.
Mettre à jour l'identifiant du bundle
- Pour exécuter et déployer correctement l'application exemple sur du matériel à l'aide de vos certificats de développeur et de vos profils de provisionnement, vous devez fournir un identifiant de bundle unique. Il doit s'agir du même identifiant associé à vos identifiants client OAuth (voir ci-dessus).
- Dans le volet de navigation Xcode, sélectionnez le fichier de projet
GoogleHomeAPISampleIOS
pour modifier la configuration du projet. - Cliquez sur l'onglet Signature et fonctionnalités en haut de la page, puis sélectionnez la cible
GoogleHomeAPISampleIOS
sur la gauche, sous la section "CIBLES". - Sélectionnez le champ "Bundle Identifier" (Identifiant de groupe) dans la section Signing (Signature) et saisissez l'identifiant unique de l'application.
- Sélectionnez ou installez le profil de provisionnement associé à ce lot avec les droits d'accès requis.
- Répétez ces étapes pour la cible
MatterAddDeviceExtension
afin de saisir l'identifiant du bundle pour l'extension et d'importer son profil de provisionnement enregistré.
Mettez à jour l'identifiant du groupe d'applications enregistré dans le code.
- L'application doit configurer l'instance du SDK pour qu'elle utilise l'identifiant du groupe d'applications pour des fonctionnalités telles que la mise en service de l'appareil. Mettez à jour l'application pour qu'elle utilise l'ID de groupe d'applications enregistré dans le portail pour les développeurs Apple. Pour ce faire, recherchez la chaîne
HOME_API_TODO_ADD_APP_GROUP
et remplacez-la par celle-ci.
Ces configurations sont effectuées dans les fichiers suivants:
GoogleHomeAPISampleIOS.swift
lorsque le SDK est initialisé.RequestHandler.swift
CommissioningManager.swift
- L'application doit configurer l'instance du SDK pour qu'elle utilise l'identifiant du groupe d'applications pour des fonctionnalités telles que la mise en service de l'appareil. Mettez à jour l'application pour qu'elle utilise l'ID de groupe d'applications enregistré dans le portail pour les développeurs Apple. Pour ce faire, recherchez la chaîne