In dieser Beispiel-iOS-Anwendung werden die Google Home APIs verwendet. In dieser Anleitung erfahren Sie, wie Sie die App zum ersten Mal erstellen und ausführen.
Vorbereitung
Sie müssen die Mindestanforderungen für die Verwendung der Home APIs für iOS erfüllen.
Zum Erstellen und Installieren der Beispiel-App benötigen Sie einen Computer mit der Xcode-Version 15.3 oder höher.
Zum Testen der App benötigen Sie Folgendes:
- Ein Google-Konto
- Eine Apple-ID, die für das Apple Developer Program registriert ist, um Konfigurationsdateien für physische Geräte zu generieren. Wenn Sie noch kein Konto haben, fallen für die Registrierung zusätzliche Kosten an und es kann bis zu 48 Stunden dauern, bis sie abgeschlossen ist.
- Ein iOS-Gerät (kein Simulator) mit iOS 16.4 oder höher, das mit dem Testkonto eingerichtet ist.
- Ein WLAN.
- Einen Google-Hub, der die Home APIs unterstützt
- Einen Thread-Border-Router, wenn Ihr Gerät Thread benötigt und Ihr Hub diese Funktion nicht hat.
- 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
Konfigurationsdateien für die Apple-Bereitstellung erstellen
Zuerst muss die Funktion App Attest für die App aktiviert sein. Daher kann es nicht auf Simulatoren bereitgestellt werden. Dazu müssen Sie ein Bereitstellungsprofil mit der Berechtigung App Attest erstellen.
Zweitens müssen die App-Gruppen für die Kommunikation zwischen der App und der MatterExtension
aktiviert sein. Dazu müssen Sie einen App-Gruppen-ID registrieren.
Weitere Informationen finden Sie im Apple-Artikel Create a development provisioning profile (Entwicklungsbereitstellungsprofil erstellen).
Im Folgenden werden die Mindestschritte für die Bereitstellung einer App beschrieben:
- Erstellen Sie eine App-Gruppen-ID für Ihre App, um mit der
MatterExtension
zu kommunizieren.- Melden Sie sich im Apple Developer Portal an.
- Fügen Sie eine App-Gruppen-ID hinzu. Sie kann beispielsweise als
group.com.company.commissioning
formatiert sein.
- Registrieren Sie Ihr Testgerät im Entwicklerkonto.
Erstellen Sie ein Profil für Ihr App-Ziel.
- Legen Sie eine Anwendungsbundle-ID für Ihre App fest. Die Kennung muss eindeutig und beschreibend sein. Sie kann beispielsweise als
com.company.HomeApiSample
formatiert sein. Diese Kennung wird im Rest dieses Abschnitts verwendet. - Registrieren Sie Ihre App-ID. Fügen Sie auf Aufforderung die Funktionen App-Attestierung und App-Gruppen hinzu.
Bearbeiten Sie die neu erstellte App-ID und konfigurieren Sie die Funktion App-Gruppen, um die registrierte App-Gruppen-ID hinzuzufügen.
Erstellen Sie ein Bereitstellungsprofil für die Entwicklung für Ihre App-Entwicklung. Ordnen Sie sie der neu erstellten App-ID und den ausgewählten Testgeräten zu. Sie benötigen ein Entwicklerzertifikat, mit dem Sie die App signieren können.
- Wenn Sie noch keine Entwickler-ID erstellt haben, finden Sie unter Zertifikate für Entwickler-IDs erstellen eine Anleitung.
- Legen Sie eine Anwendungsbundle-ID für Ihre App fest. Die Kennung muss eindeutig und beschreibend sein. Sie kann beispielsweise als
Erstellen Sie ein Profil für Ihr
MatterExtension
-Ziel.- Legen Sie eine Anwendungsbundle-ID für Ihre
MatterExtension
fest. Die Kennung sollte von der App-ID übernommen werden. Beispiel:com.company.HomeApiSample.MatterExtension
- Registrieren Sie Ihre App-ID. Fügen Sie auf Aufforderung die Funktion App-Gruppe hinzu.
- Bearbeiten Sie die neu erstellte App-ID und konfigurieren Sie die Funktion App-Gruppen, um die im vorherigen Schritt erstellte registrierte App-Gruppen-ID hinzuzufügen.
- Erstellen Sie ein Bereitstellungsprofil für die Entwicklung für
MatterExtension
.
- Legen Sie eine Anwendungsbundle-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 und Apps muss der Anwendungstyp der OAuth-Client-ID als „iOS“ konfiguriert sein. Die App ruft auch die Home API auf. Damit diese Funktion verwendet 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, mit dem Sie OAuth-Anmeldedaten erstellen möchten.
- Klicken Sie links oben auf die Menüschaltfläche > Alle Produkte ansehen > APIs und Dienste, um die Seite „APIs und Dienste“ aufzurufen.
- Klicken Sie im Navigationsmenü auf Anmeldedaten.
Wenn Sie den Einwilligungsbildschirm für dieses Google Cloud-Projekt noch nicht konfiguriert haben, wird die Schaltfläche Zustimmungsbildschirm konfigurieren angezeigt. Konfigurieren Sie in diesem Fall den Zustimmungsbildschirm mithilfe der folgenden Schritte. Wenn Ihr OAuth-Konsentierungsbildschirm bereits konfiguriert ist und der Veröffentlichungsstatus Testen lautet, müssen die zu verwendenden Testkonten der Gruppe Testnutzer hinzugefügt werden. 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 mit App-Informationen die 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 sich für die Erstellung eines internen Einwilligungsbildschirms entschieden 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 gewähren. Fügen Sie in das leere 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 Summary (Zusammenfassung) wird angezeigt.
- Überprüfen Sie die Informationen auf dem OAuth-Zustimmungsbildschirm und klicken Sie dann auf Zurück zum Dashboard.
Klicken Sie im Menü auf der linken Seite auf Anmeldedaten, um eine OAuth-Client-ID zu erstellen.
- Klicken Sie auf die Schaltfläche ANMELDEDATEN ERSTEMMEN 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-ID und der Team-ID des Apple-Entwicklers ein. Die anderen Felder sind optional und können leer gelassen werden.
- Klicke auf ERSTELLEN und notiere dir die erstellte Client-ID oder DOWNLOAD PLIST. Dieser wird später verwendet, um die Funktion „Berechtigungsablauf“ zu aktivieren. Weitere Informationen finden Sie im Abschnitt Autorisierungs-Anmeldedaten erstellen.
- Klicken Sie auf die Schaltfläche ANMELDEDATEN ERSTEMMEN und wählen Sie OAuth-Client-ID aus.
Home APIs aktivieren
Aktivieren Sie den Zugriff auf die Home APIs.
- 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 dem
HOME API
und wählen Sie ihn 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 zu dem Speicherort, an dem Sie das Projekt speichern möchten, und klonen Sie es:
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 im Stammverzeichnis des geklonten Repositorys GoogleHomeAPISampleIOS.xcodeproj
aus.
SDK einrichten
Für das Beispiel-App-Projekt sind einige zusätzliche Informationen erforderlich, damit es erstellt werden kann. Dazu gehört das lokale Hinzufügen der SDK-Framework-Dateien, das Eingeben der Informationen zur Entwicklerkonto-ID und das Eingeben der OAuth-Client-ID.
App erstellen
Wenn Sie das iOS SDK für Home APIs 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 Ziel
GoogleHomeAPISampleIOS
aus.Scrollen Sie nach unten zum Abschnitt Frameworks, Bibliotheken und eingebettete Inhalte. Die beiden Home API-Frameworks sollten aufgeführt sein.
Wählen Sie in der Spalte Einfügen für
GoogleHomeSDK.xcframework
die Option Einfügen und signieren aus. Für das andere Framework,GoogleHomeTypes.xcframework
, sollte Nicht einbetten ausgewählt bleiben.Klicken Sie unten in der Liste auf das Symbol +.
Suchen Sie auf der Aufforderung nach
SafariServices.framework
und klicken Sie auf Hinzufügen. Die Spalte Einbetten muss für diesen Eintrag auf Nicht einbetten festgelegt sein.Klicken Sie unter Ziel auf das Dreipunkt-Menü
MatterAddDeviceExtension
, um das Ziel zu bearbeiten.Scrollen Sie nach unten zum Abschnitt Frameworks und Bibliotheken.
GoogleHomeSDK.xcframework
sollte aufgeführt sein.Wählen Sie in der Spalte Einbetten die Option Nicht einbetten aus.
Konfigurieren Sie die Entwickler- und OAuth-Client-IDs:
- Suchen Sie im Navigationsbereich nach dem Ordner GoogleHomeAPISampleIOS und öffnen Sie die Datei Info.plist zur Bearbeitung.
Fügen Sie in der Datei Info.plist die GIDClientID mit Ihrer OAuth-Client-ID (siehe Abschnitt OAuth-Einwilligung einrichten) und die GIDTeamID mit der Apple Developer Team ID des Entwicklerkontos ein, das bei der OAuth-Registrierung verwendet wurde.
Konfigurieren Sie das Build-System:
- Wählen Sie im Navigationsbereich von Xcode die Projektdatei
GoogleHomeAPISampleIOS
aus, um die Projektkonfiguration zu bearbeiten. - Klicken Sie oben auf den Tab Build-Einstellungen und wählen Sie links unter „ZIELGRUPPE“ das Ziel
GoogleHomeAPISampleIOS
aus. - Suche nach Other Linker Flags (Weitere Verknüpfungsmerker) und füge zwei Einträge hinzu:
-lc++
-ObjC
- Wählen Sie im Navigationsbereich von Xcode die Projektdatei
App-Attestierungsfunktion hinzufügen:
- Wählen Sie im Navigationsbereich von Xcode die Projektdatei
GoogleHomeAPISampleIOS
aus, um die Projektkonfiguration zu bearbeiten. - Klicken Sie oben auf den Tab Signatur und Funktionen und wählen Sie links im Bereich ANZAHL DER ZIELGRUPPEN das Ziel
GoogleHomeAPISampleIOS
aus. - Klicken Sie direkt unter dem Tab „Signatur und Funktionen“ auf + Funktion und suchen Sie nach App Attest.
- Klicken Sie auf App-Attestierung, um sie 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-Gruppen hinzu.
- Gehen Sie zum Projekt GoogleHomeAPISampleIOS > Ziel GoogleHomeAPISampleIOS.
- Klicken Sie auf Signatur und Funktionen > + Funktion.
- Wählen Sie die Funktion 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-Gruppen hinzuzufügen.
Paket-ID aktualisieren
- Damit die Beispiel-App mit Ihren Entwicklerzertifikaten und Bereitstellungsprofilen auf Hardware ausgeführt und bereitgestellt werden kann, müssen Sie eine eindeutige Bundle-ID angeben. Dies sollte dieselbe Kennung sein, die mit Ihren OAuth-Client-Anmeldedaten 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 Signatur und Funktionen und wählen Sie links im Bereich ANZAHL DER ZIELGRUPPEN das Ziel
GoogleHomeAPISampleIOS
aus. - Wählen Sie im Bereich Signing (Signatur) das Feld „Bundle Identifier“ (Paket-ID) aus und geben Sie die eindeutige Kennung für die Anwendung ein.
- Wählen Sie das Bereitstellungsprofil für dieses Bundle mit den erforderlichen Berechtigungen aus oder installieren Sie es.
- Wiederholen Sie diese Schritte für das
MatterAddDeviceExtension
-Ziel, 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äteinrichtung verwendet wird. Aktualisieren Sie die App, damit sie die im Apple Developer Portal registrierte App-Gruppen-ID verwendet. Suchen Sie dazu nach dem String
HOME_API_TODO_ADD_APP_GROUP
und ersetzen Sie jede Instanz durch ihn.
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äteinrichtung verwendet wird. Aktualisieren Sie die App, damit sie die im Apple Developer Portal registrierte App-Gruppen-ID verwendet. Suchen Sie dazu nach dem String