In dieser iOS-Beispielanwendung werden die Google Home-APIs verwendet. In diesem Leitfaden erfahren Sie, wie Sie die App zum ersten Mal erstellen und ausführen.
Vorbereitung
Prüfe, ob du die Mindestanforderungen für die Verwendung der Home-APIs für iOS erfüllst.
Um die Beispiel-App zu erstellen und zu installieren, benötigen Sie einen Computer, auf dem Xcode Version 15.3 oder höher installiert ist.
Zum Testen der App benötigen Sie Folgendes:
- Ein Google-Konto
- Eine Apple-ID, die im Apple Developer Program registriert ist, um Konfigurationsdateien für physische Geräte zu generieren. Falls noch nicht geschehen, fallen für die Registrierung zusätzliche Kosten an. Es kann bis zu 48 Stunden dauern, bis die Registrierung abgeschlossen ist.
- Ein iOS-Gerät (kein Simulator) mit iOS 16.4 oder höher, das mit dem Testkonto eingerichtet ist.
- Ein WLAN
- Ein Google-Hub, der die Home-APIs unterstützt.
- Einen Thread-Border-Router, wenn dein Gerät Thread benötigt und dein Hub diese Funktion nicht unterstützt.
- Mindestens ein unterstützter Gerätetyp.
Für die Entwicklung benötigen Sie einen Mac, der die folgenden Anforderungen erfüllt:
- macOS Sonoma oder höher
- Xcode 15.3 oder höher
Apple-Konfigurationsdateien für das Deployment erstellen
Zuerst muss die Funktion App Attest für eine App aktiviert sein. Daher kann sie nicht auf Simulatorgeräten bereitgestellt werden. Dazu müssen Sie ein Bereitstellungsprofil mit der Berechtigung App Attest erstellen.
Zweitens müssen App-Gruppen für die Kommunikation zwischen der App und dem MatterExtension
aktiviert sein. Dazu müssen Sie eine App-Gruppen-ID registrieren.
Weitere Informationen zu Bereitstellungsprofilen finden Sie im Apple-Artikel Create a development provisioning profile.
Im Folgenden werden die Mindestanforderungen für die Bereitstellung einer App beschrieben:
- Erstellen Sie eine App-Gruppen-ID für Ihre App, um mit dem
MatterExtension
zu kommunizieren.- Melden Sie sich im Apple Developer-Portal an.
- Fügen Sie eine App-Gruppen-ID hinzu. Beispiel:
group.com.company.commissioning
.
- Registrieren Sie Ihr Testgerät im Entwicklerkonto.
Erstellen Sie ein Profil für Ihr App-Ziel.
- Legen Sie eine Anwendungs-Bundle-ID für Ihre App fest. Die ID sollte eindeutig und aussagekräftig sein. Beispiel:
com.company.HomeApiSample
. Diese Kennzeichnung wird im restlichen Teil dieses Abschnitts verwendet. - App-ID registrieren. Fügen Sie bei entsprechender Aufforderung die Funktionen App Attest und App Groups hinzu.
Bearbeiten Sie die neu erstellte App-ID und konfigurieren Sie die Funktion App Groups (App-Gruppen), um die registrierte App-Gruppen-ID hinzuzufügen.
Erstellen Sie ein Bereitstellungsprofil für die Entwicklung für die App-Entwicklung. Verknüpfen Sie es mit der neu erstellten App-ID und den ausgewählten Testgeräten. Sie benötigen ein Entwicklerzertifikat, um die App zu signieren.
- Wenn Sie noch kein Zertifikat erstellt haben, folgen Sie der Anleitung unter Entwickler-ID-Zertifikate erstellen.
- Legen Sie eine Anwendungs-Bundle-ID für Ihre App fest. Die ID sollte eindeutig und aussagekräftig sein. Beispiel:
Erstellen Sie ein Profil für Ihr
MatterExtension
-Ziel.- Legen Sie eine App-Bundle-ID für Ihre
MatterExtension
fest. Die Kennung sollte von der App-Kennung abgeleitet werden. Beispiel:com.company.HomeApiSample.MatterExtension
. - App-ID registrieren. Fügen Sie bei entsprechender Aufforderung die Funktion App Group hinzu.
- Bearbeiten Sie die neu erstellte App-ID und konfigurieren Sie die Funktion App Groups, um die in den vorherigen Schritten erstellte registrierte App-Gruppen-ID hinzuzufügen.
- Entwickler-Bereitstellungsprofil für
MatterExtension
erstellen.
- Legen Sie eine App-Bundle-ID für Ihre
OAuth-Client-ID generieren und Home-APIs aktivieren
Ihre App benötigt eine OAuth-Client-ID, um sich beim Authentifizierungs-Backend von Google zu identifizieren. Für iOS-Apps muss der OAuth-Client-ID-Anwendungstyp als „iOS“ konfiguriert sein. Die App ruft auch die Home API auf. Damit diese Funktion aktiviert werden kann, muss die API im Google Cloud-Projekt aktiviert sein.
OAuth-Client-ID generieren
- Rufen Sie in der Google Cloud Console das Dashboard für die Projektauswahl auf und wählen Sie das Projekt aus, das Sie zum Erstellen von OAuth-Anmeldedaten verwenden möchten.
- Rufen Sie die Seite „APIs und Dienste“ auf, indem Sie links oben auf die Menüschaltfläche > Alle Produkte ansehen > APIs und Dienste klicken.
- Klicken Sie im Navigationsmenü auf Anmeldedaten.
Wenn Sie den Zustimmungsbildschirm für dieses Google Cloud-Projekt noch nicht konfiguriert haben, wird die Schaltfläche Zustimmungsbildschirm konfigurieren angezeigt. Konfigurieren Sie in diesem Fall den Zustimmungsbildschirm mit der folgenden Anleitung. Wenn Ihr OAuth-Zustimmungsbildschirm bereits konfiguriert ist und der Veröffentlichungsstatus Testen lautet, müssen Sie die Testkonten, die Sie verwenden möchten, der Gruppe Testnutzer hinzufügen. Fahren Sie andernfalls mit dem nächsten Schritt fort.
- Wählen Sie je nach Anwendungsfall Intern oder Extern aus und klicken Sie dann auf Erstellen. Der Bereich OAuth-Zustimmungsbildschirm wird angezeigt.
- Geben Sie auf der Seite App-Informationen Informationen gemäß der Anleitung auf dem Bildschirm ein und klicken Sie dann auf Speichern und fortfahren. Der Bereich „Bereiche“ wird angezeigt.
- Sie müssen keine Bereiche hinzufügen. Klicken Sie daher auf Speichern und fortfahren. Der Bereich Testnutzer wird angezeigt.
- Wenn Sie einen internen Zustimmungsbildschirm erstellt haben, müssen Sie Nutzer hinzufügen, um den Zugriff auf Ihre App zu testen. Klicken Sie auf Nutzer hinzufügen. Der Bereich Nutzer hinzufügen wird angezeigt. Testnutzer haben die Berechtigung, Berechtigungen in Ihrer App zu erteilen. Fügen Sie im leeren Feld eine oder mehrere E‑Mail-Adressen von Google-Konten hinzu und klicken Sie dann auf Hinzufügen.
- Klicken Sie auf Speichern und fortfahren. Der Bereich Zusammenfassung wird angezeigt.
- Prüfen Sie die Informationen auf dem OAuth-Zustimmungsbildschirm und klicken Sie dann auf Zurück zum Dashboard.
Klicken Sie im linken Menü auf Anmeldedaten, um Ihre OAuth-Client-ID zu erstellen.
- Klicken Sie auf die Schaltfläche ANMELDEDATEN ERSTELLEN und wählen Sie OAuth-Client-ID aus.
- Wählen Sie unter Anwendungstyp die Option iOS aus.
- Geben Sie die Bundle-ID mit Ihrer App-Kennung und die Apple-Entwickler-Team-ID ein. Die anderen Felder sind optional und können leer gelassen werden.
- Klicken Sie auf ERSTELLEN und notieren Sie sich die erstellte Client-ID oder klicken Sie auf PLIST HERUNTERLADEN. Dies wird später verwendet, um die Funktion für den Berechtigungsablauf zu aktivieren. Weitere Informationen finden Sie im Abschnitt Autorisierungsanmeldedaten erstellen.
- Klicken Sie auf die Schaltfläche ANMELDEDATEN ERSTELLEN und wählen Sie OAuth-Client-ID aus.
Home-APIs aktivieren
Zugriff auf die Home APIs aktivieren
- Klicken Sie auf dem Tab APIs und Dienste auf Aktivierte APIs und Dienste.
- Klicken Sie oben auf der Seite auf APIs und Dienste aktivieren.
- Suchen Sie nach
HOME API
und wählen Sie es aus. - Klicken Sie auf der Detailseite der Home API auf AKTIVIEREN.
Quellcode herunterladen
Der Quellcode für die Beispielanwendung ist auf GitHub verfügbar.
Gehen Sie zum gewünschten Speicherort und klonen Sie das Projekt:
git clone https://github.com/google-home/google-home-api-sample-app-ios.git
Klicken Sie zum Laden des Projekts in Xcode auf File > Open (Datei > Öffnen) und wählen Sie GoogleHomeAPISampleIOS.xcodeproj
im Stammverzeichnis des geklonten Repositorys aus.
SDK einrichten
Für das Erstellen des Beispiel-App-Projekts sind einige zusätzliche Informationen erforderlich. Dazu gehören das lokale Hinzufügen der SDK-Framework-Dateien, das Eintragen der Informationen zur Kennzeichnung Ihres Entwicklerkontos und das Eintragen Ihrer OAuth-Client-ID.
App erstellen
Wenn Sie das Home APIs iOS SDK herunterladen möchten, müssen Sie zuerst in Google Home Developers angemeldet sein.
Konfigurieren Sie Ihr Xcode-Projekt für die Beispielanwendung:
Wählen Sie im Navigationsbereich von Xcode die Datei
GoogleHomeAPISampleIOS
aus, um die Projektkonfiguration zu bearbeiten.Klicken Sie oben auf den Tab Allgemein und wählen Sie links das Zielvorhaben aus.
GoogleHomeAPISampleIOS
Scrollen Sie nach unten, bis Sie den Abschnitt Frameworks, Bibliotheken und eingebettete Inhalte sehen. Die beiden Home API-Frameworks sollten aufgeführt sein.
Wählen Sie in der Spalte Einbetten für
GoogleHomeSDK.xcframework
die Option Einbetten und signieren aus. Das andere Framework,GoogleHomeTypes.xcframework
, sollte auf Nicht einbetten belassen werden.Klicken Sie unten in der Liste auf das Symbol +.
Suchen Sie bei Aufforderung nach
SafariServices.framework
und klicken Sie auf Hinzufügen. Achten Sie darauf, dass die Spalte Einbetten für diesen Eintrag auf Nicht einbetten festgelegt ist.Klicken Sie unter Ziel auf das
MatterAddDeviceExtension
, um das Ziel zu bearbeiten.Scrollen Sie nach unten, bis Sie den Abschnitt Frameworks und Bibliotheken sehen.
GoogleHomeSDK.xcframework
sollte angezeigt werden.Wählen Sie in der Spalte Einbetten die Option Nicht einbetten aus.
Entwickler- und OAuth-Client-IDs konfigurieren:
- Suchen Sie im Navigationsbereich nach dem Ordner GoogleHomeAPISampleIOS und öffnen Sie die Datei Info.plist zur Bearbeitung.
Füllen Sie in der Datei Info.plist die Felder GIDClientID mit Ihrer OAuth-Client-ID (siehe Abschnitt OAuth-Einwilligung einrichten), Cloud Project Number mit der Nummer Ihres Cloud-Projekts und GIDTeamID mit der Apple Developer Team ID des Entwicklerkontos aus, das während der OAuth-Registrierung verwendet wurde.
App Attest-Funktion hinzufügen:
- Wählen Sie im Navigationsbereich von Xcode die Projektdatei
GoogleHomeAPISampleIOS
aus, um die Projektkonfiguration zu bearbeiten. - Klicken Sie oben auf den Tab Signierung und Funktionen und wählen Sie links im Bereich „ZIELE“ das Ziel
GoogleHomeAPISampleIOS
aus. - Klicken Sie direkt unter dem Tab „Signierung und Funktionen“ auf + Funktion und suchen Sie nach App Attest.
- Klicken Sie auf App Attest, um die Funktion hinzuzufügen. Wenn diese Funktion in der Suche fehlt, wurde sie dem Projekt möglicherweise bereits hinzugefügt.
- Wählen Sie im Navigationsbereich von Xcode die Projektdatei
Fügen Sie die Funktion App Groups hinzu.
- Rufen Sie das Projekt GoogleHomeAPISampleIOS > GoogleHomeAPISampleIOS-Ziel auf.
- Klicken Sie auf Signieren & Funktionen > + Funktion.
- Wählen Sie die Funktion App Groups (App-Gruppen) aus.
- Klicken Sie unter App-Gruppen auf das Symbol + und fügen Sie die App-Gruppen-ID für Ihre App hinzu, die Sie im Apple Developer-Portal hinzugefügt haben.
- Wiederholen Sie diese Schritte für das Ziel MatterAddDeviceExtension, um es den App Groups hinzuzufügen.
Paket-ID aktualisieren
- Damit Sie die Beispiel-App mit Ihren Entwicklerzertifikaten und Bereitstellungsprofilen auf Hardware ausführen und bereitstellen können, müssen Sie eine eindeutige Bundle-ID angeben. Dies sollte derselbe Bezeichner sein, der mit Ihren OAuth-Clientanmeldedaten verknüpft ist (siehe oben).
- Wählen Sie im Navigationsbereich von Xcode die Projektdatei
GoogleHomeAPISampleIOS
aus, um die Projektkonfiguration zu bearbeiten. - Klicken Sie oben auf den Tab Signierung und Funktionen und wählen Sie links im Bereich „ZIELE“ das Ziel
GoogleHomeAPISampleIOS
aus. - Wählen Sie im Bereich Signing (Signieren) das Feld „Bundle Identifier“ (Paket-ID) aus und geben Sie die eindeutige Kennung für die Anwendung ein.
- Wählen Sie das Bereitstellungsprofil aus, das mit diesem Bundle verknüpft ist und die erforderlichen Berechtigungen enthält, oder installieren Sie es.
- Wiederholen Sie diese Schritte für das Ziel
MatterAddDeviceExtension
, um die Bundle-ID für die Erweiterung einzugeben und das registrierte Bereitstellungsprofil zu importieren.
Aktualisieren Sie die registrierte App-Gruppen-ID im Code.
- Die Anwendung muss die SDK-Instanz so konfigurieren, dass die App-Gruppen-ID für Funktionen wie die Gerätebereitstellung verwendet wird. Aktualisieren Sie die App, um die im Apple Developer-Portal registrierte App-Gruppen-ID zu verwenden. Suchen Sie dazu nach dem String
HOME_API_TODO_ADD_APP_GROUP
und ersetzen Sie jede Instanz damit.
Diese Konfigurationen werden in den folgenden Dateien vorgenommen:
GoogleHomeAPISampleIOS.swift
, wenn das SDK initialisiert wird.RequestHandler.swift
CommissioningManager.swift
- Die Anwendung muss die SDK-Instanz so konfigurieren, dass die App-Gruppen-ID für Funktionen wie die Gerätebereitstellung verwendet wird. Aktualisieren Sie die App, um die im Apple Developer-Portal registrierte App-Gruppen-ID zu verwenden. Suchen Sie dazu nach dem String