Compila la app de ejemplo para iOS

Esta aplicación de ejemplo para iOS usa las APIs de Google Home. Usa esta guía para compilar y ejecutar la app por primera vez.

Requisitos previos

Asegúrate de cumplir con los requisitos mínimos para usar las APIs de Home para iOS.

Para compilar e instalar la app de ejemplo, necesitarás una computadora con la versión 15.3 o posterior de Xcode instalada.

Descarga Xcode

Para probar la app, necesitarás lo siguiente:

  1. Una Cuenta de Google registrada en el EAP de las APIs de Home que funcione como cuenta de prueba
  2. Un ID de Apple inscrito en el Programa para desarrolladores de Apple para generar archivos de configuración de dispositivos físicos Si aún no lo hiciste, la inscripción genera un costo adicional y puede tardar hasta 48 horas en completarse.
  3. Un dispositivo iOS (no un simulador) que ejecute iOS 16.4 o versiones posteriores configurado con la cuenta de prueba
  4. Una red Wi-Fi
  5. Un concentrador de Google que admita las APIs de Home
  6. Un router de borde Thread si tu dispositivo requiere Thread y tu concentrador no tiene esa función
  7. Al menos un tipo de dispositivo compatible

Para el desarrollo, necesitarás una Mac que cumpla con los siguientes requisitos:

  • macOS Sonoma o versiones posteriores
  • Xcode 15.3 o una versión posterior

Crea archivos de configuración de implementación de Apple

En primer lugar, una app requiere que la función de certificación de apps esté habilitada. Como resultado, no se puede implementar en dispositivos de simulador. Para ello, debes crear un perfil de aprovisionamiento con el derecho de Certificación de apps.

En segundo lugar, requiere que los grupos de apps estén habilitados para la comunicación entre la app y MatterExtension. Para ello, debes registrar un identificador de grupo de apps.

Para obtener más información, consulta Crea un perfil de aprovisionamiento de desarrollo en los perfiles de aprovisionamiento de Apple.

A continuación, se describen los pasos mínimos necesarios para implementar una app:

  1. Crea un identificador de grupo de apps para que tu app se comunique con MatterExtension.
    1. Accede al Portal para desarrolladores de Apple.
    2. Agrega un identificador de grupo de apps. Por ejemplo, podría tener el formato group.com.company.commissioning.
  2. Registra tu dispositivo de prueba en la cuenta de desarrollador.
  3. Crea un perfil para el objetivo de tu app.

    1. El identificador debe ser único y descriptivo. Por ejemplo, podría tener el formato com.company.HomeApiSample. Este identificador se usará en el resto de esta sección.
    2. Registra tu ID de aplicación. Cuando se te solicite, agrega las funciones de App Attest y App Groups.
    3. Edita el ID de app creado recientemente y configura la capability App Groups para agregar el identificador de grupo de apps registrado.

    4. Crea un perfil de aprovisionamiento de desarrollo para el desarrollo de tu app. Asócialo al ID de app que creaste recientemente y a los dispositivos de prueba seleccionados. Asegúrate de tener un certificado de desarrollador para firmar la app.

  4. Crea un perfil para tu objetivo MatterExtension.

    1. Elige un identificador de paquete de aplicación para tu MatterExtension. El identificador debe heredarse del identificador de la app. Por ejemplo, podría tener el formato com.company.HomeApiSample.MatterExtension.
    2. Registra tu ID de aplicación. Cuando se te solicite, agrega la capability App Group.
    3. Edita el ID de app recién creado y configura la capability App Groups para agregar el identificador de grupo de apps registrado que creaste en los pasos anteriores.
    4. Crea un perfil de aprovisionamiento de desarrollo para MatterExtension.

Genera el ID de cliente de OAuth y habilita las APIs de Home

Tu app necesita un ID de cliente de OAuth para identificarse ante el backend de autenticación de Google. En el caso de iOS y las apps, el tipo de aplicación del ID de cliente de OAuth debe configurarse como iOS. La app también hará llamadas a la API de Home. Para habilitar esta funcionalidad, la API debe estar habilitada en el proyecto Google Cloud.

Genera el ID de cliente de OAuth

  1. En la consola de Google Cloud, ve al panel del selector de proyectos y selecciona el proyecto que deseas usar para crear credenciales de OAuth.
  2. Para ir a la página APIs y servicios, haz clic en el botón de menú en la parte superior izquierda > Ver todos los productos > APIs y servicios.
  3. En el menú de navegación, haz clic en Credenciales.
  4. Si aún no configuraste la pantalla de consentimiento para este proyecto de Google Cloud, aparecerá el botón Configurar pantalla de consentimiento. En ese caso, configura la pantalla de consentimiento con el siguiente procedimiento. Si ya se configuró la pantalla de consentimiento de OAuth y su estado de publicación es Prueba, asegúrate de que las cuentas de prueba que usarás se agreguen al grupo Usuarios de prueba. De lo contrario, continúa con el siguiente paso.

    1. Según tu caso de uso, selecciona Interno o Externo y, luego, haz clic en Crear. Se mostrará el panel Pantalla de consentimiento de OAuth.
    2. Ingresa la información en la página de información de la app según las instrucciones en pantalla y, luego, haz clic en Guardar y continuar. Aparecerá el panel Scopes.
    3. No es necesario que agregues ningún permiso, así que haz clic en Guardar y continuar. Se mostrará el panel Usuarios de prueba.
    4. Si elegiste crear una pantalla de consentimiento interna, debes agregar usuarios para probar el acceso a tu app. Haz clic en Agregar usuarios. Se mostrará el panel Agregar usuarios. Los usuarios de prueba tienen el privilegio de otorgar permisos en tu app. En el campo vacío, agrega una o más direcciones de correo electrónico de Cuentas de Google y, luego, haz clic en Agregar.
    5. Haga clic en Guardar y continuar. Aparecerá el panel Resumen.
    6. Revisa la información de la pantalla de consentimiento de OAuth y, luego, haz clic en Volver al panel.
  5. En el panel del menú de la izquierda, haz clic en Credenciales para crear tu ID de cliente de OAuth.

    Configura la pantalla de OAuth

    1. Haz clic en el botón CREATE CREDENTIALS y selecciona OAuth client ID.
      1. En tipo de aplicación, selecciona iOS.
    2. Ingresa el ID del paquete con el identificador de tu app y el ID del equipo de desarrollador de Apple. Los demás campos son opcionales y se pueden dejar en blanco.
    3. Haz clic en CREATE y anota el ID de cliente o DOWNLOAD PLIST creado. Esto se usará más adelante para habilitar la funcionalidad de flujo de permisos. Para obtener más información, consulta la sección Crea credenciales de autorización.

Habilita las APIs de Home

Habilita el acceso a las APIs de Home.

  1. En la pestaña APIs y servicios, haz clic en APIs y servicios habilitados.
  2. Haz clic en HABILITAR APIS Y SERVICIOS en la parte superior de la página.
  3. Busca HOME API y selecciónala.
  4. En la página de detalles de la API de Home, haz clic en HABILITAR.

Descargue el código fuente

El código fuente de la app de ejemplo está disponible en GitHub.

Navega hasta donde quieras guardar el proyecto y, luego, clonarlo:

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

Para cargar el proyecto en Xcode, haz clic en File > Open y selecciona GoogleHomeAPISampleIOS.xcodeproj en la raíz del repositorio clonado.

Configura el SDK

El proyecto de app de ejemplo requiere información adicional para compilarse. Esto incluye agregar de forma local los archivos del framework del SDK, propagar la información del identificador de tu cuenta de desarrollador y propagar tu ID de cliente de OAuth.

Compila la app

Para descargar el SDK de las APIs de Home para iOS, primero debes haber accedido a Google Home Developers.

¡Accede ahora!

Configura tu proyecto Xcode para la app de ejemplo:

  1. En el panel de navegación de Xcode, selecciona el archivo GoogleHomeAPISampleIOS para editar la configuración del proyecto.

    Configura la app de ejemplo del SDK

  2. Haz clic en la pestaña General en la parte superior y selecciona el objetivo GoogleHomeAPISampleIOS en el lado izquierdo.

  3. Desplázate hacia abajo hasta que veas la sección Frameworks, bibliotecas y contenido incorporado. Deberías ver los dos frameworks de la API de Home en la lista.

  4. En la columna Incrustar, selecciona Incrustar y firmar para GoogleHomeSDK.xcframework. El otro framework, GoogleHomeTypes.xcframework, debe dejarse como No incorporar.

  5. En la parte inferior de la lista, haz clic en el ícono +.

  6. Cuando se te solicite, busca SafariServices.framework y haz clic en agregar. Asegúrate de que la columna Embed esté configurada en Do Not Embed para esta entrada.

    Incorporar y firmar

  7. Haz clic en el MatterAddDeviceExtension en Segmentación para editar su segmentación.

  8. Desplázate hacia abajo hasta que veas la sección Frameworks y bibliotecas. Deberías ver GoogleHomeSDK.xcframework en la lista.

  9. En la columna Insertar, selecciona No insertar.

  10. Configura los IDs de cliente de desarrollador y de OAuth:

    1. En el panel de navegación, busca la carpeta GoogleHomeAPISampleIOS y abre el archivo Info.plist para editarlo.
  11. En el archivo Info.plist, propaga GIDClientID con tu ID de cliente de OAuth (consulta la sección Cómo configurar el consentimiento de OAuth) y GIDTeamID con el ID de equipo de desarrolladores de Apple de la cuenta de desarrollador que se usó durante el proceso de registro de OAuth.

  12. Configura el sistema de compilación:

    Agrega marcas de vinculador

    1. En el panel de navegación de Xcode, selecciona el archivo del proyecto GoogleHomeAPISampleIOS para editar su configuración.
    2. Haz clic en la pestaña Build Settings en la parte superior y selecciona el objetivo GoogleHomeAPISampleIOS en el lado izquierdo, en la sección TARGETS.
    3. Busca Other Linker Flags y agrega dos entradas:
      • -lc++
      • -ObjC
  13. Agrega la función de App Attest:

    1. En el panel de navegación de Xcode, selecciona el archivo del proyecto GoogleHomeAPISampleIOS para editar su configuración.
    2. Haz clic en la pestaña Firma y capacidades en la parte superior y selecciona el objetivo GoogleHomeAPISampleIOS en el lado izquierdo, en la sección OBJETIVOS.
    3. Justo debajo de la pestaña Signing and Capabilities, haz clic en + Capability y busca App Attest.
    4. Haz clic en App Attest para agregarlo. Si falta esta función en la búsqueda, es posible que el proyecto ya la haya agregado.
  14. Agrega la capability App Groups.

    Agrega grupos de aplicaciones

    1. Ve al proyecto GoogleHomeAPISampleIOS > objetivo GoogleHomeAPISampleIOS.
    2. Haz clic en Firma y capacidades > + Capacidad.
    3. Selecciona la capability App Groups.
    4. Haz clic en el ícono + debajo de App Groups y agrega el identificador de App Groups de tu app que agregaste en el Apple Developer Portal.
    5. Repite estos pasos para el objetivo MatterAddDeviceExtension para agregarlo a los grupos de apps.
  15. Actualiza el identificador de paquete

    1. Para ejecutar y, luego, implementar correctamente la app de ejemplo en hardware con tus certificados de desarrollador y perfiles de aprovisionamiento, deberás proporcionar un identificador de paquete único. Debe ser el mismo identificador asociado con tus credenciales de cliente de OAuth (consulta más arriba).
    2. En el panel de navegación de Xcode, selecciona el archivo del proyecto GoogleHomeAPISampleIOS para editar su configuración.
    3. Haz clic en la pestaña Firma y capacidades en la parte superior y selecciona el objetivo GoogleHomeAPISampleIOS en el lado izquierdo, en la sección OBJETIVOS.
    4. Selecciona el campo del identificador del paquete en la sección Firma y, luego, ingresa el identificador único de la aplicación.
    5. Selecciona o instala el perfil de aprovisionamiento relacionado con ese paquete con los derechos necesarios.
    6. Repite estos pasos para el objetivo MatterAddDeviceExtension para ingresar el identificador de paquete de la extensión y, luego, importar su perfil de aprovisionamiento registrado.
  16. Actualiza el identificador de grupo de apps registrado en el código.

    1. La aplicación debe configurar la instancia del SDK para usar el identificador del grupo de apps para funciones como la comisión de dispositivos. Para actualizar la app y usar el ID de grupo de apps registrado en el Portal para desarrolladores de Apple, busca la cadena HOME_API_TODO_ADD_APP_GROUP y reemplaza cada instancia con ella.

    Estas configuraciones se realizan en los siguientes archivos:

    • GoogleHomeAPISampleIOS.swift cuando se inicializa el SDK.
    • RequestHandler.swift
    • CommissioningManager.swift