Kompilowanie przykładowej aplikacji na iOS

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

Wymagania wstępne

Sprawdź, czy spełniasz minimalne wymagania dotyczące korzystania z interfejsów API Home na iOS.

Aby skompilować i zainstalować przykładową aplikację, musisz mieć komputer z zainstalowaną wersją Xcode 15.3 lub nowszą.

Pobieranie Xcode

Aby przetestować aplikację, musisz mieć:

  1. Konto Google zarejestrowane w programie EAP interfejsów API Home, które służy jako konto testowe.
  2. Apple ID zarejestrowany w programie dla deweloperów Apple, aby generować pliki konfiguracji urządzeń fizycznych. Jeśli nie zostało jeszcze utworzone, za jego utworzenie zostanie naliczona dodatkowa opłata, a cała procedura może potrwać do 48 godzin.
  3. urządzenie z iOS (nie symulator) w wersji 16.4 lub nowszej z kontem testowym,
  4. sieć Wi-Fi,
  5. Konsola Google obsługująca interfejsy API Home.
  6. routera granicznego Thread, jeśli urządzenie wymaga tej technologii, a hub jej nie obsługuje.
  7. co najmniej 1 obsługiwany typ urządzenia.

Do tworzenia aplikacji potrzebny jest Mac, który spełnia te wymagania:

  • macOS 10.13 lub nowszy
  • Xcode 15.3 lub nowsza

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. W tym celu musisz utworzyć profil obsługi administracyjnej z uprawnieniami App Attest.

Po drugie, wymaga to włączenia grup aplikacji na potrzeby komunikacji między aplikacją a MatterExtension. W tym celu musisz zarejestrować identyfikator grupy aplikacji.

Więcej informacji znajdziesz w artykule Tworzenie profilu zaopatrzenia na potrzeby programowania na temat profili zaopatrzenia.

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 usługą MatterExtension.
    1. Zaloguj się w portalu dewelopera Apple.
    2. Dodaj identyfikator grupy aplikacji. Może ono mieć na przykład format group.com.company.commissioning.
  2. Zarejestruj urządzenie testowe na koncie programisty.
  3. Utwórz profil dla grupy docelowej aplikacji.

    1. Wybierz identyfikator pakietu aplikacji. Identyfikator powinien być unikalny i opisowy. Może ono mieć na przykład format com.company.HomeApiSample. Ten identyfikator będzie używany w dalszej części tej sekcji.
    2. Zarejestruj identyfikator aplikacji. Gdy pojawi się odpowiedni komunikat, dodaj funkcję App AttestApp Groups.
    3. Zmień utworzony identyfikator aplikacji i skonfiguruj uprawnienie Grupy aplikacji, aby dodać zarejestrowany identyfikator grupy aplikacji.

    4. Utwórz profil udostępniania na potrzeby programowania. Powiązaj 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 docelowego MatterExtension.

    1. Wybierz identyfikator pakietu aplikacji dla MatterExtension. Identyfikator powinien być dziedziczony z identyfikatora aplikacji. Może on mieć na przykład format com.company.HomeApiSample.MatterExtension.
    2. Zarejestruj identyfikator aplikacji. Gdy pojawi się odpowiedni komunikat, dodaj funkcję grupy aplikacji.
    3. Zmień utworzony identyfikator aplikacji i skonfiguruj funkcję Grupy aplikacji, aby dodać zarejestrowany identyfikator grupy aplikacji utworzony w poprzednich krokach.
    4. Utwórz profil obsługi administracyjnej w wersji deweloperskiej MatterExtension.

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

Aplikacja potrzebuje identyfikatora klienta OAuth, aby zidentyfikować się na zapleczu uwierzytelniania Google. W przypadku iOS i aplikacji identyfikator klienta OAuth musi być skonfigurowany jako iOS. Aplikacja będzie też wykonywać wywołania interfejsu 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 sterowania selektorem projektu 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 akceptacji OAuth został już skonfigurowany, a jego stan publikowania 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 z informacjami o aplikacji zgodnie z instrukcjami wyświetlanymi na ekranie, a potem kliknij Zapisz i kontynuuj. Pojawi się panel Zakresy.
    3. Nie musisz dodawać żadnych zakresów, więc kliknij Zapisz i kontynuuj. Wyświetli się panel Testowi użytkownicy.
    4. Jeśli zdecydujesz się utworzyć wewnętrzny ekran zgody, musisz dodać użytkowników, którzy przetestują 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 potem kliknij Dodaj.
    5. Kliknij Zapisz i kontynuuj. Pojawi się panel Podsumowanie.
    6. Zapoznaj się z informacjami na ekranie zgody OAuth, a potem kliknij Wróć do panelu.
  5. Aby utworzyć identyfikator klienta OAuth, w panelu menu po lewej stronie kliknij Dane logowania.

    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 programistów Apple. Pozostałe pola są opcjonalne i można je pozostawić puste.
    3. Kliknij UTWÓRZ i zapisz utworzony identyfikator klienta lub POBIERZ PLIK PLIST. Będzie on używany później do włączenia funkcji przepływu uprawnień. Więcej informacji znajdziesz w sekcji Tworzenie danych uwierzytelniających.

Włącz interfejsy API Home

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

  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 HOME API i wybierz tę opcję.
  4. Na stronie szczegółów 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 potem go sklonuj:

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

Aby załadować projekt w Xcode, kliknij Plik > Otwórz i w katalogu głównym klonowanego repozytorium wybierzGoogleHomeAPISampleIOS.xcodeproj.

Konfigurowanie pakietu SDK

Aby skompilować przykładowy projekt aplikacji, musisz podać dodatkowe informacje. Obejmuje to dodanie plików ramowego pakietu SDK na komputerze lokalnym, wypełnienie informacji o identyfikatorze konta dewelopera i wypełnienie identyfikatora klienta OAuth.

Kompilowanie aplikacji

Aby pobrać pakiet SDK interfejsów API Home na iOS, musisz najpierw zalogować się w Google jako deweloper Home.

Zaloguj się teraz

Skonfiguruj projekt Xcode na potrzeby przykładowej aplikacji:

  1. Aby edytować konfigurację projektu, w panelu nawigacyjnym Xcode wybierz plik GoogleHomeAPISampleIOS.

    Konfigurowanie przykładowej aplikacji z pakietem SDK

  2. U góry kliknij kartę Ogólne, a po lewej stronie wybierz docelowe GoogleHomeAPISampleIOS.

  3. Przewiń w dół do sekcji Frameworki, biblioteki i osadzone treści. Powinny być widoczne 2 platformy interfejsu API Home.

  4. W kolumnie Umieść wybierz Umieść i podpisz dla GoogleHomeSDK.xcframework. Drugi framework,GoogleHomeTypes.xcframework, powinien mieć ustawioną opcję Nie wklejać.

  5. U dołu listy kliknij ikonę +.

  6. Gdy pojawi się odpowiedni komunikat, wyszukaj SafariServices.framework i kliknij Dodaj. Sprawdź, czy w kolumnie Wstawianie dla tego wpisu jest ustawiona opcja Nie wstawiaj.

    Umieść i podpisz

  7. Aby edytować kierowanie, kliknij MatterAddDeviceExtension w sekcji Kierowanie.

  8. Przewiń w dół do sekcji Frameworki i biblioteki. Powinieneś zobaczyć wartość GoogleHomeSDK.xcframework.

  9. W kolumnie Umieść wybierz Nie umieszczaj.

  10. Skonfiguruj identyfikatory klienta dewelopera i OAuth:

    1. W panelu nawigacyjnym odszukaj folder GoogleHomeAPISampleIOS i otwórz plik Info.plist do edycji.
  11. W pliku Info.plist wypełnij pole GIDClientID swoim identyfikatorem klienta OAuth (patrz sekcja Konfigurowanie zgody na OAuth), a pole GIDTeamID identyfikatorem Apple Developer Team konta dewelopera użytego podczas procesu rejestracji OAuth.

  12. Skonfiguruj system kompilacji:

    Dodawanie flag linkera

    1. Aby edytować konfigurację projektu, w panelu nawigacyjnym Xcode wybierz plik projektu GoogleHomeAPISampleIOS.
    2. U góry kliknij kartę Ustawienia projektu i po lewej stronie w sekcji TARGETS wybierz docelowe GoogleHomeAPISampleIOS.
    3. Wyszukaj Inne flagi linkera i dodaj 2 elementy:
      • -lc++
      • -ObjC
  13. Dodawanie możliwości weryfikacji aplikacji:

    1. Aby edytować konfigurację projektu, w panelu nawigacyjnym Xcode wybierz plik projektu GoogleHomeAPISampleIOS.
    2. U góry kliknij kartę Podpisywanie i możliwości, a po lewej stronie w sekcji CELU wybierz cel GoogleHomeAPISampleIOS.
    3. Tuż pod kartą Podpisywanie i możliwości kliknij + Możliwości i wyszukaj App Attest.
    4. Aby dodać, kliknij App Attest (Weryfikacja aplikacji). Jeśli ta funkcja jest niedostępna w wyszukiwarce, może to oznaczać, że została już dodana do projektu.
  14. Dodaj funkcję grup aplikacji.

    Dodawanie grup aplikacji

    1. Otwórz projekt GoogleHomeAPISampleIOS > GoogleHomeAPISampleIOS.
    2. Kliknij Podpisywanie i możliwości > + Możliwości.
    3. Wybierz funkcję Grupy aplikacji.
    4. Kliknij ikonę + w sekcji Grupy aplikacji i dodaj identyfikator grupy aplikacji dla swojej aplikacji, który został dodany na stronie Portal deweloperów Apple.
    5. Powtórz te czynności w przypadku celu MatterAddDeviceExtension, aby dodać go do grup aplikacji.
  15. Zaktualizuj identyfikator pakietu

    1. Aby uruchomić i wdrożyć przykładową aplikację na sprzęcie za pomocą certyfikatów dewelopera i profilów obsługi, musisz podać unikalny identyfikator pakietu. Powinien to być ten sam identyfikator powiązany z danymi logowania klienta OAuth (patrz wyżej).
    2. Aby edytować konfigurację projektu, w panelu nawigacyjnym Xcode wybierz plik projektu GoogleHomeAPISampleIOS.
    3. U góry kliknij kartę Podpisywanie i możliwości, a po lewej stronie w sekcji CELU wybierz cel GoogleHomeAPISampleIOS.
    4. W sekcji Podpisywanie wybierz pole Identyfikator pakietu i wpisz niepowtarzalny identyfikator aplikacji.
    5. Wybierz lub zainstaluj profil obsługiwany przez ten pakiet z wymaganymi uprawnieniami.
    6. Powtórz te czynności w przypadku celu MatterAddDeviceExtension, aby wprowadzić identyfikator pakietu rozszerzenia i zaimportować zarejestrowany profil zaopatrzenia.
  16. Zaktualizuj w kodzie identyfikator zarejestrowanej grupy aplikacji.

    1. Aplikacja musi skonfigurować instancję pakietu SDK, aby korzystać z identyfikatora grupy aplikacji na potrzeby funkcji takich jak wdrożenie urządzenia. Zaktualizuj aplikację, aby korzystać z identyfikatora grupy aplikacji zarejestrowanego w portalu Apple Developer. Aby to zrobić, wyszukaj ciąg znaków HOME_API_TODO_ADD_APP_GROUP i zastąp nim wszystkie wystąpienia.

    Te konfiguracje są tworzone w tych plikach:

    • GoogleHomeAPISampleIOS.swift po zainicjowaniu pakietu SDK.
    • RequestHandler.swift
    • CommissioningManager.swift