A partir de iOS 14, el sistema operativo aplicará nuevas restricciones y permisos que afectarán la experiencia del usuario de Cast. También afectará la forma en que compilas el SDK de Cast en tu app. Para que tu app mantenga la funcionalidad de Cast con las versiones más recientes de iOS, debes realizar actualizaciones para controlar estos cambios de permisos.
iOS 14
Los desarrolladores deben actualizar sus apps de emisor de Cast para iOS al SDK de Google Cast v4.6.0 o una versión 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 les mostrarán a los usuarios un diálogo de permisos único para encontrar dispositivos de red local y conectarse a ellos. La plataforma de Cast usa la red local para detectar y controlar dispositivos Cast, por lo que, si el usuario rechaza el permiso, no podrá transmitir contenido.
Para mejorar la experiencia del usuario, realizaremos algunas modificaciones de UX en el SDK para aquellas apps que usan el selector de dispositivos estándar. Estas modificaciones de la UX hacen que sea más evidente para los usuarios por qué se necesitan los permisos de acceso a la red local, así como cómo habilitar la transmisión si se inhabilitó el acceso a los dispositivos de la red local.
Las apps compiladas con versiones del SDK de Cast que usen la versión 4.4.8 o versiones anteriores seguirán funcionando, siempre que se compilen con Xcode 11.7 o versiones anteriores. Si compilas para iOS 14 con Xcode 12 o versiones posteriores, te recomendamos que actualices al SDK de Cast v4.6.0 o una versión posterior para garantizar que tu app para Cast siga funcionando correctamente.
Para descargar el SDK de Cast para iOS v4.6.0 o una versión posterior con CocoaPods, sigue la configuración de CocoaPods o la configuración manual. Esta versión incluye cambios en el mecanismo de descubrimiento subyacente para permitir que las apps compiladas con Xcode 12 encuentren dispositivos Cast en la red. Ahora, el botón para transmitir debería mostrarse siempre. Si no hay dispositivos disponibles cuando el usuario presiona el botón Cast, se mostrará un diálogo con orientación sobre por qué es posible que no haya dispositivos disponibles, incluida información para volver a habilitar el permiso de acceso a la red local.
Cambios en el SDK de Cast
Transmisión por primera vez
La primera vez que un usuario intenta transmitir, aparecerá un diálogo intersticial de acceso a la red local (LNA) en el que se explicará por qué se necesita el acceso a la red local, seguido del mensaje de permisos de acceso a la red local de iOS que proporciona Apple. En las siguientes simulaciones, se ilustra el flujo:
Cast no está disponible
A partir del SDK de emisor de iOS 4.6.0, el botón Transmitir siempre aparece cuando el usuario está conectado a una red Wi-Fi. Cuando los dispositivos de transmisión no están disponibles, presionar el botón de transmisión muestra un diálogo que le da al usuario sugerencias sobre los posibles motivos por los que la transmisión no está disponible, como se muestra en las siguientes simulaciones:
Actualiza tu app en iOS 14
-
Agrega el SDK de Cast para iOS 4.8.3 a tu proyecto
Si usas CocoaPods, usa
pod update
para agregar el SDK 4.8.3 a tu proyecto.De lo contrario, extrae el SDK de forma manual.
-
Agrega
NSBonjourServices
a tuInfo.plist
Especifica
NSBonjourServices
en tuInfo.plist
para permitir que el descubrimiento de red local se realice correctamente en iOS 14.Deberás agregar
_googlecast._tcp
y_<your-app-id>._googlecast._tcp
como servicios para que el descubrimiento de dispositivos funcione correctamente.El appID es tu receiverID, que es el mismo ID que se define en tu
GCKDiscoveryCriteria
.Actualiza la siguiente definición de ejemplo de
NSBonjourServices
y reemplaza "ABCD1234" por tu appID. -
Agrega
NSLocalNetworkUsageDescription
a tuInfo.plist
Te recomendamos que personalices el mensaje que se muestra en el mensaje de red local. Para ello, agrega una cadena de permiso específica de la app en el archivo
Info.plist
de la app para elNSLocalNetworkUsageDescription
, como para describir el descubrimiento de Cast y otros servicios de descubrimiento, como DIAL.Este mensaje aparecerá como parte del diálogo de Acceso a la red local de iOS, como se muestra en la simulación.
-
Vuelve a lanzar tu app en la App Store de Apple
Te recomendamos que vuelvas a lanzar tu app con la versión 4.8.3 lo antes posible.
Personalizaciones
Iniciación del descubrimiento de dispositivos compatibles con Cast
De forma predeterminada, el descubrimiento de dispositivos Cast se inicia la primera vez que el usuario presiona el botón Cast (GCKUICastButton
). Si es la primera vez que el usuario intenta usar la app de Cast en la red local después de actualizar a iOS 14, aparecerá la nueva ventana intersticial de la LNA, seguida del diálogo de permisos de acceso a la red local de iOS.
Hay disponible una nueva marca para permitirte controlar cuándo comienza el descubrimiento de dispositivos y el comportamiento de ciertos elementos de la UX:
startDiscoveryAfterFirstTapOnCastButton: BOOL(true/false)
El valor predeterminado es true
. Esta marca solo se aplica cuando la marca GCKCastOptions::disableDiscoveryAutostart
se establece en false
.
Si se establece en true
, la detección de dispositivos compatibles con Cast comienza cuando un usuario presiona GCKUICastButton
por primera vez. Se mostrará un mensaje informativo al usuario para informarle por qué se necesita el permiso de red local. Después de ese mensaje, se mostrará el mensaje de LNA de iOS 14.
El descubrimiento de dispositivos de transmisión comienza después de que se confirma el mensaje.
En los lanzamientos posteriores de la app, siempre se muestra GCKUICastButton
.
Si se establece en false
, el descubrimiento de dispositivos comenzará en función del valor de la marca GCKCastOptions::disableDiscoveryAutostart
.
Preguntas frecuentes
¿Qué sucede si vuelvo a lanzar mi app de envío de Cast con el SDK de Cast v4.4.8 y Xcode 12?
Es posible que tu app no pueda descubrir dispositivos de transmisión en la red local, a menos que hayas obtenido un derecho de multicast de red de Apple. Ten en cuenta que Apple no otorgará derechos de multicast solo para admitir Cast. Si planeas compilar 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é experimentarán los usuarios que ejecuten iOS 13 o versiones anteriores?
Seguirán viendo la misma experiencia del usuario que tenían antes de la nueva versión de la app. Los cambios visibles para el usuario se limitan a los usuarios que ejecutan iOS 14.
¿Qué debo hacer para actualizar mi app una vez que se lance la nueva versión del SDK de Cast?
- Actualiza el
Info.plist
de tu app para que incluya una descripción del uso de la red local. - Agrega
NSBonjourServices
alInfo.plist
de tu app y proporciona los nombres de los servicios de Bonjour para Cast y tu ID de app. - Actualiza tu app de envío para usar el SDK de Cast 4.6.0.
- Vuelve a lanzar la app en la tienda de aplicaciones de Apple.
¿Por qué los dispositivos dejaron de aparecer en mi selector de dispositivos personalizados después de actualizar a la versión 4.6.0?
Este es un problema conocido que puede ocurrir si usas un selector de dispositivos personalizado en lugar del selector de dispositivos estándar. En la versión 4.4.8 del SDK de Cast y versiones anteriores, el escaneo de dispositivos era automático. A partir de la versión 4.6.0, deberás llamar explícitamente al método startDiscovery
en la clase
GCKDiscoveryManager
para iniciar el descubrimiento de dispositivos.
El motivo de este cambio es que el mensaje de permisos de acceso a la red local (LNA) aparecerá después de que la app realice el análisis por primera vez. Esto podría provocar que los diálogos de permisos aparezcan en lugares aleatorios de la app.
Se espera que los desarrolladores que compilan un selector de dispositivos personalizado para su app proporcionen un intersticial único antes de iniciar el escaneo de dispositivos por primera vez en iOS 14.
iOS 13
Con iOS 13, se introdujeron nuevos requisitos de permisos que afectan a las apps que usan el SDK de Google Cast.
A partir de la versión 4.4.3 del SDK de Google Cast, hay disponible un SDK adicional que no requiere permiso de Bluetooth®. Está disponible en el sitio para desarrolladores y en el nuevo Cocoapods google-cast-sdk-no-bluetooth
.
Desglose de la app
A continuación, se muestra un desglose según la versión del SDK de iOS que uses actualmente:
Apps compiladas con el SDK de iOS 12 o versiones anteriores
- Acción recomendada. Es posible que el rendimiento del descubrimiento de dispositivos disminuya cuando se ejecute en iOS 13, pero seguirá siendo funcional. Recomendamos a los desarrolladores que actualicen al SDK de Cast v4.4.4 cuando esté disponible.
- iOS 13 les solicitará a los usuarios que otorguen permisos de Bluetooth® a la app.
Apps compiladas con el SDK de iOS 13
- Acción obligatoria: Actualiza al SDK de Cast 4.4.4 o es posible que no aparezca el botón de transmisión si el usuario no otorga permiso de ubicación. Es necesario actualizar al SDK de Cast 4.4.4 para garantizar una experiencia de transmisión confiable en iOS 13.