Crea l'app di esempio per iOS

Questa applicazione iOS di esempio utilizza le API Google Home. Utilizza questa guida per creare ed eseguire l'app per la prima volta.

Prerequisiti

Assicurati di soddisfare i requisiti minimi per utilizzare le API Home per iOS.

Per creare e installare l'app di esempio, devi avere un computer con Xcode versione 15.3 o successive.

Scarica Xcode

Per testare l'app, devi avere:

  1. Un Account Google.
  2. Un ID Apple registrato al Developer Program di Apple per generare i file di configurazione dei dispositivi fisici. Se non è già stata creata, la registrazione comporta un costo aggiuntivo e potrebbe richiedere fino a 48 ore per essere completata.
  3. Un dispositivo iOS (non un simulatore) con iOS 16.4 o versioni successive configurato con l'account di test.
  4. Una rete Wi-Fi.
  5. Un hub Google che supporta le API Home.
  6. Un Thread Border Router (TBR) se il tuo dispositivo richiede Thread e l'hub non ha questa funzionalità.
  7. Almeno un tipo di dispositivo supportato.

Per lo sviluppo, avrai bisogno di un Mac che soddisfi i seguenti requisiti:

  • macOS Sonoma o versioni successive
  • Xcode 15.3 o versioni successive

Crea i file di configurazione del deployment Apple

Innanzitutto, un'app richiede l'attivazione della funzionalità App Attest. Di conseguenza, non è possibile eseguirne il deployment sui dispositivi del simulatore. Per farlo, devi creare un profilo di provisioning con l'autorizzazione App Attest.

In secondo luogo, è necessario che i gruppi di app siano abilitati per la comunicazione tra l'app e MatterExtension. Per farlo, devi registrare un identificatore del gruppo di app.

Per maggiori dettagli, consulta la pagina di Apple Create a development provisioning profile sui profili di provisioning.

Di seguito sono riportati i passaggi minimi necessari per eseguire il deployment di un'app:

  1. Crea un identificatore del gruppo di app per consentire alla tua app di comunicare con MatterExtension.
    1. Accedi al portale per sviluppatori Apple.
    2. Aggiungi un identificatore del gruppo di app. Ad esempio, potrebbe essere formattato come group.com.company.commissioning.
  2. Registra il tuo dispositivo di test nell'account sviluppatore.
  3. Crea un profilo per il target dell'app.

    1. Scegli un identificatore pacchetto per la tua app. L'identificatore deve essere univoco e descrittivo. Ad esempio, potrebbe essere formattato come com.company.HomeApiSample. Questo identificatore verrà utilizzato nel resto di questa sezione.
    2. Registra l'ID app. Quando richiesto, aggiungi le funzionalità App Attest e Gruppi di app.
    3. Modifica l'ID app appena creato e configura la funzionalità Gruppi di app per aggiungere l'identificatore del gruppo di app registrato.

    4. Crea un profilo di provisioning di sviluppo per lo sviluppo della tua app. Associalo all'ID app appena creato e ai dispositivi di test selezionati. Assicurati di avere un certificato sviluppatore con cui firmare l'app.

  4. Crea un profilo per il tuo target MatterExtension.

    1. Scegli un identificatore pacchetto dell'applicazione per il tuo MatterExtension. L'identificatore deve essere ereditato dall'identificatore dell'app. Ad esempio, potrebbe essere formattato come com.company.HomeApiSample.MatterExtension.
    2. Registra l'ID app. Quando richiesto, aggiungi la funzionalità Gruppo di app.
    3. Modifica l'ID app appena creato e configura la funzionalità Gruppi di app per aggiungere l'identificatore del gruppo di app registrato creato nei passaggi precedenti.
    4. Crea un profilo di provisioning di sviluppo per MatterExtension.

Genera l'ID client OAuth e attiva le API Home

La tua app ha bisogno di un ID client OAuth per identificarsi nel backend di autenticazione di Google. Per iOS e le app, il tipo di applicazione ID client OAuth deve essere configurato come iOS. L'app effettuerà anche chiamate all'API Home. Per attivare questa funzionalità, l'API deve essere abilitata nel progetto Google Cloud.

Genera l'ID client OAuth

  1. Nella console Google Cloud, vai alla dashboard del selettore di progetti e seleziona il progetto che vuoi utilizzare per creare le credenziali OAuth.
  2. Vai alla pagina API e servizi facendo clic sul pulsante del menu in alto a sinistra > Visualizza tutti i prodotti > API e servizi.
  3. Nel menu di navigazione, fai clic su Credenziali.
  4. Se non hai ancora configurato la schermata per il consenso per questo progetto Google Cloud, viene visualizzato il pulsante Configura schermata per il consenso. In questo caso, configura la schermata per il consenso utilizzando la seguente procedura. Se la schermata per il consenso OAuth è già stata configurata e lo stato di pubblicazione è Test, assicurati che gli account di test che utilizzerai siano aggiunti al gruppo Utenti di test. In caso contrario, vai al passaggio successivo.

    1. A seconda del caso d'uso, seleziona Interno o Esterno, quindi fai clic su Crea. Viene visualizzato il riquadro Schermata per il consenso OAuth.
    2. Inserisci le informazioni nella pagina Informazioni sull'app seguendo le istruzioni sullo schermo, quindi fai clic su Salva e continua. Viene visualizzato il riquadro Ambiti.
    3. Non è necessario aggiungere ambiti, quindi fai clic su Salva e continua. Viene visualizzato il riquadro Utenti di test.
    4. Se hai scelto di creare una schermata per il consenso interna, devi aggiungere utenti per testare l'accesso alla tua app. Fai clic su Aggiungi utenti. Viene visualizzato il riquadro Aggiungi utenti. Gli utenti di test hanno il privilegio di concedere autorizzazioni nella tua app. Nel campo vuoto, aggiungi uno o più indirizzi email dell'Account Google, quindi fai clic su Aggiungi.
    5. Fai clic su Salva e continua. Viene visualizzato il riquadro Riepilogo.
    6. Esamina le informazioni della schermata per il consenso OAuth, quindi fai clic su Torna alla dashboard.
  5. Nel riquadro del menu a sinistra, fai clic su Credenziali per creare l'ID client OAuth.

    Configura la schermata OAuth

    1. Fai clic sul pulsante CREA CREDENZIALI e seleziona ID client OAuth.
      1. In Tipo di applicazione, seleziona iOS.
    2. Inserisci l'ID pacchetto con l'identificatore dell'app e l'ID team di sviluppatori Apple. Gli altri campi sono facoltativi e possono essere lasciati vuoti.
    3. Fai clic su CREA e prendi nota dell'ID client creato o fai clic su SCARICA PLIST. Questo verrà utilizzato in un secondo momento per attivare la funzionalità del flusso di autorizzazioni. Per saperne di più, consulta la sezione Crea credenziali di autorizzazione.

Attiva le API Home

Abilita l'accesso alle API Home.

  1. Nella scheda API e servizi, fai clic su API e servizi abilitati.
  2. Fai clic su ABILITA API E SERVIZI nella parte superiore della pagina.
  3. Cerca HOME API e selezionalo.
  4. Nella pagina dei dettagli dell'API Home, fai clic su ABILITA.

scarica il codice sorgente

Il codice sorgente per l'app di esempio è disponibile su GitHub.

Vai alla posizione in cui vuoi salvare il progetto, quindi clonalo:

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

Per caricare il progetto su Xcode, fai clic su File > Apri e seleziona GoogleHomeAPISampleIOS.xcodeproj nella directory principale del repository clonato.

Aggiungi l'SDK al progetto

Il progetto dell'app di esempio richiede alcune informazioni aggiuntive per la creazione. Ciò include l'aggiunta locale dei file del framework dell'SDK, la compilazione delle informazioni dell'identificatore dell'account sviluppatore e la compilazione dell'ID client OAuth.

Crea l'app

Per scaricare l'SDK per iOS delle API Home, devi prima accedere a Google Home Developers.

Accedi ora.

Configura il progetto Xcode per l'app di esempio:

  1. Decomprimi l'SDK scaricato nella directory ThirdParty/GoogleHomeSDK relativa alla directory root del progetto.
  2. Configura gli ID client sviluppatore e OAuth:
    1. Nel riquadro di navigazione, cerca la cartella GoogleHomeAPISampleIOS e apri il file Info.plist per modificarlo.
  3. Nel file Info.plist, compila GIDClientID con il tuo ID client OAuth (consulta la sezione Configura il consenso OAuth), Cloud Project Number corrispondente al tuo progetto cloud e GIDTeamID con l'ID team sviluppatore Apple dell'account sviluppatore utilizzato durante la procedura di registrazione OAuth.

  4. Aggiungi la funzionalità App Attest:

    1. Nel riquadro di navigazione di Xcode, seleziona il file di progetto GoogleHomeAPISampleIOS per modificare la configurazione del progetto.
    2. Fai clic sulla scheda Signing and Capabilities (Firma e funzionalità) in alto e seleziona il target GoogleHomeAPISampleIOS sul lato sinistro nella sezione TARGETS (TARGET).
    3. Subito sotto la scheda Signing & Capabilities (Firma e funzionalità), fai clic su + Capability (+ Funzionalità) e cerca App Attest.
    4. Fai clic su App Attest per aggiungerlo. Se questa funzionalità non è presente nella ricerca, è possibile che sia già stata aggiunta al progetto.
  5. Aggiungi la funzionalità Gruppi di app.

    Aggiungi gruppi di app

    1. Vai al progetto GoogleHomeAPISampleIOS > target GoogleHomeAPISampleIOS.
    2. Fai clic su Signing & Capabilities (Firma e funzionalità) > + Capability (+ Funzionalità).
    3. Seleziona la funzionalità Gruppi di app.
    4. Fai clic sull'icona + in Gruppi di app e aggiungi l'identificatore dei gruppi di app per la tua app che hai aggiunto nel portale per sviluppatori Apple.
    5. Ripeti questi passaggi per il target MatterAddDeviceExtension per aggiungerlo ai gruppi di app.
  6. Aggiorna l'identificatore pacchetto

    1. Per eseguire ed eseguire il deployment dell'app di esempio sull'hardware utilizzando i tuoi certificati per sviluppatori e i profili di provisioning, devi fornire un identificatore pacchetto univoco. Deve essere lo stesso identificatore associato alle tue credenziali client OAuth (vedi sopra).
    2. Nel riquadro di navigazione di Xcode, seleziona il file di progetto GoogleHomeAPISampleIOS per modificare la configurazione del progetto.
    3. Fai clic sulla scheda Signing and Capabilities (Firma e funzionalità) in alto e seleziona il target GoogleHomeAPISampleIOS sul lato sinistro nella sezione TARGETS (TARGET).
    4. Seleziona il campo Identificatore pacchetto nella sezione Firma e inserisci l'identificatore univoco dell'applicazione.
    5. Seleziona o installa il profilo di provisioning relativo a quel bundle con i diritti richiesti.
    6. Ripeti questi passaggi per la destinazione MatterAddDeviceExtension per inserire l'identificatore pacchetto per l'estensione e importare il relativo profilo di provisioning registrato.
  7. Aggiorna l'identificatore del gruppo di app registrato nel codice.

    1. L'applicazione deve configurare l'istanza dell'SDK per utilizzare l'identificatore del gruppo di app per funzionalità come la messa in servizio del dispositivo. Aggiorna l'app per utilizzare l'ID gruppo di app registrato nel portale per sviluppatori Apple cercando la stringa HOME_API_TODO_ADD_APP_GROUP e sostituendo ogni istanza con questa.

    Queste configurazioni vengono effettuate nei seguenti file:

    • GoogleHomeAPISampleIOS.swift quando l'SDK viene inizializzato.
    • RequestHandler.swift
    • CommissioningManager.swift
  8. Configura l'ambito OAuth in GoogleHomeAPISampleIOS.swift. Per impostazione predefinita, il codice sorgente dell'app di esempio utilizza l'ambito https://www.googleapis.com/auth/home.platform.v2. Molte funzionalità dell'app di esempio sono limitate dall'ambito home.platform.v2 e richiedono l'approvazione del partner per l'accesso. Per eseguire l'app di esempio con l'ambito https://www.googleapis.com/auth/home.platform.selected.devices standard, apri GoogleHomeAPISampleIOS.swift e modifica homePlatformOAuthScope in Home.configure in HomePlatformOAuthScope.v1:

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