Permisos y detección de iOS

A partir de iOS 14, el sistema operativo aplicará de manera forzosa nuevas restricciones y permisos que afectan la experiencia del usuario de Cast. También afectará la forma en que compila el SDK de Cast en tu app. Para que tu app conserve la funcionalidad de transmisión con las versiones más recientes de iOS, debes realizar actualizaciones para administrarlas cambios en los permisos.

iOS 14

Los desarrolladores deben actualizar sus apps emisoras de iOS Cast al SDK de Google Cast v4.6.0 o posterior. Estas versiones son compatibles con iOS 14 y sus requisitos.

A partir de iOS 14, las aplicaciones que buscan dispositivos en la red local Ahora se mostrará a los usuarios un diálogo de permisos único para buscar y conectarse a dispositivos de red local. La plataforma de Cast usa la red local para detectar y de transmisión, así que si el usuario rechaza el permiso, no podrá transmitir.

Para mejorar la experiencia del usuario, realizaremos algunas modificaciones en la UX del SDK. para aquellas apps que usan el selector de dispositivos estándar. Estas modificaciones de la UX para dejar en claro a los usuarios por qué se necesitan los permisos de acceso a la red local y cómo habilitar la transmisión si se habilitó el acceso al dispositivo de red local inhabilitado.

Se seguirán usando las apps compiladas con versiones del SDK de Cast que usen la versión 4.4.8 o una anterior. para que funcionen, siempre y cuando se compilen con Xcode 11.7 o una versión anterior. Si eres compilando para iOS 14 con Xcode 12 o versiones posteriores, te recomendamos que actualices a la versión SDK v4.6.0 o una versión posterior para garantizar que tu app de Google Cast continúe funcionando correctamente.

Puedes descargar la versión 4.6.0 o posterior del SDK de Cast iOS con CocoaPods siguiendo los pasos que se indican a continuación: la configuración de CocoaPods o de forma manual siguiendo los pasos de configuración manual. Esta versión incluye cambios en el mecanismo de descubrimiento subyacente para permitir que las apps compilada con Xcode 12 para encontrar dispositivos de transmisión en la red. El botón para transmitir debería ahora mostrar siempre. Si no hay dispositivos disponibles cuando el usuario presiona la transmisión botón, aparecerá un diálogo que brindará orientación sobre los motivos por los que los dispositivos disponibles, incluida información sobre cómo volver a habilitar el acceso a la red local permiso.

Cambios en el SDK de Cast

Primera transmisión

El acceso a una red local (LNA) se crea la primera vez que un usuario intenta transmitir contenido. aparecerá un diálogo intersticial en el que se explicará por qué el acceso a las redes locales necesarios, seguidos de los permisos de acceso a la red local de iOS que proporciona Apple mensaje. Las siguientes simulaciones ilustran el flujo:

Flujo de permisos de acceso a la red local

Transmisión no disponible

A partir del SDK emisor de iOS 4.6.0, el botón para transmitir siempre aparece cuando el usuario esté conectado a una red Wi-Fi. Cuando los dispositivos de transmisión no están disponibles, Cuando presionas el botón para transmitir, aparece un diálogo que le brinda al usuario sugerencias sobre los posibles motivos por los que Cast no está disponible, como se muestra en los siguientes ejemplos:

Flujo con transmisión no disponible

Actualiza tu app en iOS 14

  1. Agrega el SDK de Cast para iOS 4.8.1 a tu proyecto

    Si usas CocoaPods, usa pod update para agregar el SDK 4.8.1 a tu proyecto.

    De lo contrario, extraer el SDK de forma manual.

  2. Agrega NSBonjourServices a tu Info.plist

    Especifica NSBonjourServices en tu Info.plist para permitirá que el descubrimiento de redes locales sea exitoso en iOS 14.

    Deberás agregar _googlecast._tcp y _<your-app-id>._googlecast._tcp como servicios para el dispositivo para que el descubrimiento funcione correctamente.

    El appID es el receptorID, que es el mismo ID que se define en tu GCKDiscoveryCriteria

    Actualiza la siguiente definición de ejemplo de NSBonjourServices y Reemplaza “ABCD1234” con el ID de tu app.

    &lt;key&gt;NSBonjourServices&lt;/key&gt;
    &lt;array&gt;
      &lt;string&gt;_googlecast._tcp&lt;/string&gt;
      &lt;string&gt;_ABCD1234._googlecast._tcp&lt;/string&gt;
    &lt;/array&gt;
  3. Agrega NSLocalNetworkUsageDescription a tu Info.plist

    Te recomendamos que personalices el mensaje que se muestra en la pestaña Local Mensaje de red agregando una cadena de permiso específica de la app al Info.plist para el NSLocalNetworkUsageDescription, como para describir la transmisión y otros servicios de descubrimiento, como DIAL.

    &lt;key&gt;NSLocalNetworkUsageDescription&lt;/key&gt;
    <string>${PRODUCT_NAME} usa la red local para descubrir dispositivos compatibles con Cast en tu red Wi-Fi
    .</string>

    Este mensaje aparecerá como parte del diálogo de Acceso a la red local de iOS como que se muestra en la simulación.

    Imagen del diálogo de permisos de acceso a la red local de Cast
  4. Vuelve a lanzar la app en la App Store de Apple

    Te recomendamos que también vuelvas a lanzar tu app con 4.8.1 como lo antes posible.

Personalizaciones

Inicio del descubrimiento de dispositivos de transmisión

De forma predeterminada, la detección del dispositivo de transmisión se inicia la primera vez que el usuario presiona el botón para transmitir (GCKUICastButton). Si es la primera vez que el usuario intentó usar la app de Cast en la red local después de actualizar a iOS 14, aparecerá el nuevo anuncio intersticial de LNA, seguido de la red local de iOS Diálogo de permisos de acceso.

Hay una nueva marca disponible que te permite controlar cuándo comienza la detección de dispositivos y el comportamiento de ciertos elementos de la UX:

startDiscoveryAfterFirstTapOnCastButton: BOOL(true/false)

El valor predeterminado es true. Esta marca solo es aplicable cuando está GCKCastOptions::disableDiscoveryAutostart se estableció en false.

Si la estableces como true, la detección de dispositivos de transmisión comenzará cuando un usuario presione GCKUICastButton por primera vez. Se mostrará un mensaje informativo que se muestra al usuario para informarle por qué se otorga el permiso de red local según sea necesario. Luego de ese mensaje, se mostrará el mensaje de LNA de iOS 14. La detección del dispositivo de transmisión comienza después de que se confirma el mensaje.

En inicios posteriores de la app, siempre se mostrará GCKUICastButton.

Si se establece en false, la detección de dispositivos comenzará según el valor de la marca GCKCastOptions::disableDiscoveryAutostart

Preguntas frecuentes

¿Qué sucede si vuelvo a liberar mi ¿App emisora de transmisión con el SDK de Cast v4.4.8 y Xcode 12?

Es posible que tu app no pueda detectar dispositivos de transmisión en la red local a menos que tengas autorización de multicast de red de Apple. Ten en cuenta que Apple no otorgará derechos de multidifusión exclusivamente para el de admitir Cast. Si planeas realizar compilaciones con Xcode 12, debes lanzar tu app con Cast 4.6.0

Si vuelvo a lanzar mi app con el nuevo SDK de Cast, ¿qué sucede? ¿Mis usuarios tendrán iOS 13 o una versión anterior?

Seguirán viendo la misma experiencia del usuario que tenían antes de volver a lanzar la app. Los cambios visibles para el usuario se limitan a los usuarios que se ejecutan en iOS 14.

¿Qué tendré que hacer para actualizar mi app una vez que el nuevo del SDK de Cast?

  • Actualiza el Info.plist de tu app para incluir una red local la descripción de uso del servicio.
  • Agrega NSBonjourServices a la carpeta de archivos de tu app Info.plist y proporciona los nombres del servicio de Bonjour para Cast. y el ID de la app.
  • Actualiza tu app emisora para usar el SDK de Cast 4.6.0.
  • Vuelve a lanzar la app en la App Store de Apple.

¿Por qué dejaron de mostrarse dispositivos en mi dispositivo personalizado? después de actualizar a la versión 4.6.0?

Este es un problema conocido que puede ocurrir si usas un dispositivo personalizado. en lugar del selector de dispositivo estándar. En la versión 4.4.8 de la SDK de Cast y versiones anteriores; el análisis de dispositivos era automático. A partir de la versión 4.6.0, deberás llamar de forma explícita a startDiscovery. en la GCKDiscoveryManager para iniciar la detección de dispositivos.

Esto se debe a que el acceso a la red local (LNA) el mensaje de solicitud de permisos aparecerá luego de que la app realice el análisis tiempo. Esto podría provocar que aparezcan diálogos de permisos en lugares aleatorios. en tu app.

Los desarrolladores que compilen un selector de dispositivos personalizado para su app se espera que proporciones un anuncio intersticial único antes de iniciar el dispositivo escaneando por primera vez en iOS 14.

iOS 13

Con iOS 13, se introdujeron nuevos requisitos de permisos que afectan apps con el SDK de Google Cast.

A partir de la versión 4.4.3 del SDK de Google Cast, hay un SDK adicional disponible que no requieren permiso de Bluetooth®. Esta opción está disponible en la página de la aplicación y en la nueva google-cast-sdk-no-bluetooth CocoaPods.

Desglose de apps

Este es un desglose según la versión del SDK de iOS que uses usando:

Aplicaciones compiladas con el SDK de iOS 12 o versiones anteriores

  • Acción recomendada. El rendimiento del descubrimiento de dispositivos que se ejecuta en iOS 13, pero seguirá funcionando. Te recomendamos especialmente desarrolladores actualicen al SDK de Cast 4.4.4 cuando esté disponible.
  • iOS 13 solicitará a los usuarios que otorguen permisos de Bluetooth® a la app.

Aplicaciones compiladas con el SDK de iOS 13

  • Acción obligatoria: Actualiza al SDK de Cast 4.4.4; de lo contrario, es posible que el botón para transmitir aparecerán si el usuario no otorga permiso de ubicación. Actualización al SDK de Cast La versión 4.4.4 es necesaria para garantizar una experiencia de transmisión confiable en iOS 13.