Tworzenie przykładowej aplikacji na iOS

Ta przykładowa aplikacja na iOS korzysta z interfejsów Google Home API. Z tego przewodnika dowiesz się, jak po raz pierwszy skompilować i uruchomić aplikację.

Wymagania wstępne

Upewnij się, że spełniasz minimalne wymagania dotyczące korzystania z interfejsów Home API na iOS.

Aby utworzyć i zainstalować przykładową aplikację, musisz mieć komputer z zainstalowanym Xcode w wersji 15.3 lub nowszej.

Pobierz Xcode

Aby przetestować aplikację, potrzebujesz:

  1. Konto Google.
  2. Identyfikator Apple ID zarejestrowany w programie Apple Developer Program, aby generować pliki konfiguracji urządzeń fizycznych. Jeśli nie zostało jeszcze utworzone, rejestracja wiąże się z dodatkowymi kosztami i może potrwać do 48 godzin.
  3. urządzenie z iOS (nie symulator) z systemem iOS 16.4 lub nowszym, na którym skonfigurowano konto testowe;
  4. sieć Wi-Fi,
  5. Centrum Google, które obsługuje interfejsy Home API.
  6. Thread Border Router (TBR), jeśli urządzenie wymaga protokołu Thread, a koncentrator nie obsługuje tej funkcji.
  7. co najmniej 1 obsługiwany typ urządzenia,

Do programowania potrzebujesz komputera Mac, który spełnia te wymagania:

  • macOS Sonoma lub nowszy
  • Xcode 15.3 lub nowszy,

Tworzenie plików konfiguracji wdrożenia Apple

Po pierwsze, aplikacja wymaga włączenia funkcji App Attest. W związku z tym nie można go wdrożyć na urządzeniach symulatora. Wymaga to utworzenia profilu obsługi administracyjnej z uprawnieniem App Attest.

Po drugie, wymaga włączenia grup aplikacji na potrzeby komunikacji między aplikacją a MatterExtension. Wymaga to zarejestrowania identyfikatora grupy aplikacji.

Więcej informacji o profilach udostępniania znajdziesz w artykule Tworzenie profilu udostępniania na potrzeby programistyczne w dokumentacji Apple.

Poniżej znajdziesz opis minimalnych kroków wymaganych do wdrożenia aplikacji:

  1. Utwórz identyfikator grupy aplikacji, aby aplikacja mogła komunikować się z MatterExtension.
    1. Zaloguj się w portalu dla programistów Apple.
    2. Dodaj identyfikator grupy aplikacji. Może on mieć na przykład format group.com.company.commissioning.
  2. Zarejestruj urządzenie testowe na koncie dewelopera.
  3. Utwórz profil dla celu aplikacji.

    1. Wybierz identyfikator pakietu aplikacji. Powinien on być unikalny i opisowy. Może on mieć na przykład format com.company.HomeApiSample. Ten identyfikator będzie używany w pozostałej części tej sekcji.
    2. Zarejestruj identyfikator aplikacji. Gdy pojawi się prośba, dodaj funkcje App Attest i Grupy aplikacji.
    3. Edytuj nowo utworzony identyfikator aplikacji i skonfiguruj funkcję App Groups (Grupy aplikacji), aby dodać zarejestrowany identyfikator grupy aplikacji.

    4. Utwórz profil obsługi administracyjnej na potrzeby programowania aplikacji. Powiąż go z nowo utworzonym identyfikatorem aplikacji i wybranymi urządzeniami testowymi. Upewnij się, że masz certyfikat dewelopera, którym możesz podpisać aplikację.

  4. Utwórz profil dla celu MatterExtension.

    1. Wybierz identyfikator pakietu aplikacji dla MatterExtension. Identyfikator powinien być dziedziczony z identyfikatora aplikacji. Może mieć na przykład format com.company.HomeApiSample.MatterExtension.
    2. Zarejestruj identyfikator aplikacji. Gdy pojawi się prośba, dodaj funkcję App Group (Grupa aplikacji).
    3. Edytuj nowo utworzony identyfikator aplikacji i skonfiguruj funkcję App Groups (Grupy aplikacji), aby dodać zarejestrowany identyfikator grupy aplikacji utworzony w poprzednich krokach.
    4. Utwórz profil obsługi administracyjnej dla programistów dla aplikacji MatterExtension.

Generowanie identyfikatora klienta OAuth i włączanie interfejsów Home API

Aplikacja potrzebuje identyfikatora klienta OAuth, aby identyfikować się w backendzie uwierzytelniania Google. W przypadku aplikacji na iOS typ aplikacji identyfikatora klienta OAuth musi być skonfigurowany jako iOS. Aplikacja będzie też wywoływać interfejs Home API. Aby włączyć tę funkcję, musisz włączyć interfejs API w projekcie Google Cloud.

Generowanie identyfikatora klienta OAuth

  1. W konsoli Google Cloud otwórz panel selektora projektów i wybierz projekt, którego chcesz użyć do utworzenia danych uwierzytelniających OAuth.
  2. Otwórz stronę Interfejsy API i usługi, klikając przycisk menu w lewym górnym rogu > Wyświetl wszystkie usługi > Interfejsy API i usługi.
  3. W menu nawigacyjnym kliknij Dane logowania.
  4. Jeśli nie masz jeszcze skonfigurowanego ekranu zgody w tym projekcie Google Cloud, pojawi się przycisk Skonfiguruj ekran zgody. W takim przypadku skonfiguruj ekran zgody, wykonując te czynności. Jeśli ekran zgody OAuth został już skonfigurowany, a jego stan publikacji to Testowanie, upewnij się, że konta testowe, których będziesz używać, zostały dodane do grupy Użytkownicy testowi. W przeciwnym razie przejdź do następnego kroku.

    1. W zależności od przypadku użycia wybierz Wewnętrzny lub Zewnętrzny, a następnie kliknij Utwórz. Pojawi się panel Ekran zgody OAuth.
    2. Wpisz informacje na stronie Informacje o aplikacji zgodnie z instrukcjami wyświetlanymi na ekranie, a następnie kliknij Zapisz i kontynuuj. Pojawi się panel Zakresy.
    3. Nie musisz dodawać żadnych zakresów, więc kliknij Zapisz i kontynuuj. Pojawi się panel Użytkownicy testowi.
    4. Jeśli zdecydujesz się utworzyć wewnętrzny ekran zgody, musisz dodać użytkowników, aby przetestować dostęp do aplikacji. Kliknij Dodaj użytkowników. Pojawi się panel Dodaj użytkowników. Użytkownicy testowi mają uprawnienia do przyznawania uprawnień w Twojej aplikacji. W pustym polu dodaj co najmniej 1 adres e-mail konta Google, a następnie kliknij Dodaj.
    5. Kliknij Zapisz i kontynuuj. Pojawi się panel Podsumowanie.
    6. Sprawdź informacje na ekranie zgody OAuth, a następnie kliknij Wróć do panelu.
  5. W panelu menu po lewej stronie kliknij Dane logowania, aby utworzyć identyfikator klienta OAuth.

    Konfigurowanie ekranu OAuth

    1. Kliknij przycisk UTWÓRZ DANE LOGOWANIA i wybierz Identyfikator klienta OAuth.
      1. W sekcji Typ aplikacji wybierz iOS.
    2. Wpisz identyfikator pakietu z identyfikatorem aplikacji i identyfikatorem zespołu Apple Developer. Pozostałe pola są opcjonalne i można je pozostawić puste.
    3. Kliknij UTWÓRZ i zapisz utworzony identyfikator klienta lub kliknij POBIERZ PLIST. Będzie on później używany do włączania funkcji przepływu uprawnień. Więcej informacji znajdziesz w sekcji Tworzenie danych uwierzytelniających.

Włączanie interfejsów Home API

Włącz dostęp do interfejsów Home API.

  1. Na karcie Interfejsy API i usługi kliknij Włączone interfejsy API i usługi.
  2. U góry strony kliknij WŁĄCZ INTERFEJSY API I USŁUGI.
  3. Wyszukaj i wybierz HOME API.
  4. Na stronie z informacjami Home API kliknij WŁĄCZ.

Pobieranie kodu źródłowego

Kod źródłowy przykładowej aplikacji jest dostępny na GitHubie.

Przejdź do miejsca, w którym chcesz zapisać projekt, a następnie sklonuj go:

git clone https://github.com/google-home/google-home-api-sample-app-ios.git

Aby wczytać projekt w Xcode, kliknij File (Plik) > Open (Otwórz) i wybierz GoogleHomeAPISampleIOS.xcodeproj w głównym katalogu sklonowanego repozytorium.

Dodaj pakiet SDK do projektu

Projekt przykładowej aplikacji wymaga dodatkowych informacji, aby można było go utworzyć. Obejmuje to lokalne dodanie plików platformy SDK, podanie informacji o identyfikatorze konta dewelopera i podanie identyfikatora klienta OAuth.

Tworzenie aplikacji

Aby pobrać pakiet SDK Home APIs na iOS, musisz najpierw zalogować się w Google Home Developers.

Zaloguj się teraz

Skonfiguruj projekt Xcode dla przykładowej aplikacji:

  1. Rozpakuj pobrany pakiet SDK do katalogu ThirdParty/GoogleHomeSDK względem katalogu głównego projektu.
  2. Skonfiguruj identyfikatory dewelopera i klienta OAuth:
    1. W panelu nawigacji znajdź folder GoogleHomeAPISampleIOS i otwórz plik Info.plist do edycji.
  3. W pliku Info.plist wypełnij pole GIDClientID identyfikatorem klienta OAuth (patrz sekcja Konfigurowanie zgody OAuth), pole Cloud Project Number numerem projektu w chmurze, a pole GIDTeamID identyfikatorem Apple Developer Team ID konta dewelopera użytego podczas procesu rejestracji OAuth.

  4. Dodaj funkcję App Attest:

    1. W panelu nawigacji Xcode wybierz plik projektu GoogleHomeAPISampleIOS, aby edytować konfigurację projektu.
    2. U góry kliknij kartę Signing and Capabilities (Podpisywanie i funkcje), a po lewej stronie w sekcji TARGETS (Cele) wybierz cel GoogleHomeAPISampleIOS.
    3. Tuż pod kartą Signing and Capabilities (Podpisywanie i funkcje) kliknij + Capability (+ Funkcja) i wyszukaj App Attest.
    4. Kliknij App Attest, aby dodać tę usługę. Jeśli nie widzisz tej funkcji w wynikach wyszukiwania, być może została już dodana do projektu.
  5. Dodaj funkcję App Groups (Grupy aplikacji).

    Dodawanie grup aplikacji

    1. Otwórz projekt GoogleHomeAPISampleIOS > cel GoogleHomeAPISampleIOS.
    2. Kliknij Signing & Capabilities (Podpisywanie i funkcje) > + Capability (+ Funkcja).
    3. Wybierz funkcję Grupy aplikacji.
    4. Kliknij ikonę + w sekcji App Groups (Grupy aplikacji) i dodaj identyfikator grupy aplikacji, który został dodany w portalu Apple Developer Portal.
    5. Powtórz te czynności w przypadku celu MatterAddDeviceExtension, aby dodać go do grup aplikacji.
  6. Zaktualizuj identyfikator pakietu.

    1. Aby pomyślnie uruchomić i wdrożyć przykładową aplikację na sprzęcie przy użyciu certyfikatów dewelopera i profili obsługi administracyjnej, musisz podać unikalny identyfikator pakietu. Powinien być taki sam jak identyfikator powiązany z Twoimi danymi logowania klienta OAuth (patrz wyżej).
    2. W panelu nawigacji Xcode wybierz plik projektu GoogleHomeAPISampleIOS, aby edytować konfigurację projektu.
    3. U góry kliknij kartę Signing and Capabilities (Podpisywanie i funkcje), a po lewej stronie w sekcji TARGETS (Cele) wybierz cel GoogleHomeAPISampleIOS.
    4. Wybierz pole Bundle Identifier (Identyfikator pakietu) w sekcji Signing (Podpisywanie) i wpisz unikalny identyfikator aplikacji.
    5. Wybierz lub zainstaluj profil obsługi administracyjnej powiązany z tym pakietem i zawierający wymagane uprawnienia.
    6. Powtórz te czynności w przypadku celu MatterAddDeviceExtension, aby wpisać identyfikator pakietu rozszerzenia i zaimportować zarejestrowany profil obsługi administracyjnej.
  7. Zaktualizuj zarejestrowany identyfikator grupy aplikacji w kodzie.

    1. Aplikacja musi skonfigurować instancję pakietu SDK, aby korzystać z identyfikatora grupy aplikacji w przypadku funkcji takich jak uruchamianie urządzenia. Zaktualizuj aplikację, aby używać identyfikatora grupy aplikacji zarejestrowanego w portalu dla deweloperów Apple. W tym celu wyszukaj ciąg HOME_API_TODO_ADD_APP_GROUP i zastąp nim każde wystąpienie.

    Te konfiguracje są wprowadzane w tych plikach:

    • GoogleHomeAPISampleIOS.swift po zainicjowaniu pakietu SDK.
    • RequestHandler.swift
    • CommissioningManager.swift
  8. Skonfiguruj zakres protokołu OAuth w GoogleHomeAPISampleIOS.swift. Domyślnie kod źródłowy przykładowej aplikacji używa zakresu https://www.googleapis.com/auth/home.platform.v2. Wiele funkcji w przykładowej aplikacji jest ograniczonych zakresem home.platform.v2 i wymaga zgody partnera na dostęp. Aby uruchomić przykładową aplikację ze standardowym zakresem https://www.googleapis.com/auth/home.platform.selected.devices, otwórz GoogleHomeAPISampleIOS.swift i zmień homePlatformOAuthScope w Home.configure na HomePlatformOAuthScope.v1:

    Home.configure {
      $0.sharedAppGroup = "HOME_API_TODO_ADD_APP_GROUP"
      $0.homePlatformOAuthScope = HomePlatformOAuthScope.v1
      ...
    }