À partir d'iOS 14, le système d'exploitation appliquera de nouvelles restrictions et autorisations qui affecteront l'expérience utilisateur Cast. Cela aura également une incidence sur la façon dont vous intégrez le SDK Cast à votre application. Pour que votre application conserve la fonctionnalité Cast avec les dernières versions d'iOS, vous devez effectuer des mises à jour pour gérer ces modifications d'autorisations.
iOS 14
Les développeurs doivent mettre à jour leurs applications Cast pour iOS vers le SDK Google Cast v4.6.0 ou version ultérieure. Ces versions sont compatibles avec iOS 14 et ses exigences.
À partir d'iOS 14, les applications qui recherchent des appareils sur le réseau local invitent désormais les utilisateurs à autoriser une seule fois la recherche et la connexion aux appareils du réseau local. La plate-forme Cast utilise le réseau local pour détecter et contrôler les appareils Cast. Si l'utilisateur refuse l'autorisation, il ne pourra pas caster.
Pour améliorer l'expérience utilisateur, nous apportons quelques modifications à l'expérience utilisateur du SDK pour les applications qui utilisent le sélecteur d'appareils standard. Ces modifications de l'expérience utilisateur permettent aux utilisateurs de mieux comprendre pourquoi les autorisations d'accès au réseau local sont nécessaires et comment activer le Cast si l'accès aux appareils du réseau local a été désactivé.
Les applications créées avec des versions du SDK Cast utilisant la version 4.4.8 ou antérieure continueront de fonctionner tant qu'elles seront créées avec Xcode 11.7 ou une version antérieure. Si vous développez pour iOS 14 avec Xcode 12 ou version ultérieure, nous vous recommandons de passer au SDK Cast v4.6.0 ou version ultérieure pour vous assurer que votre application Cast continuera de fonctionner correctement.
Le SDK Cast iOS version 4.6.0 ou ultérieure peut être téléchargé avec CocoaPods en suivant la configuration de CocoaPods ou manuellement en suivant la configuration manuelle. Cette version inclut des modifications du mécanisme de découverte sous-jacent pour permettre aux applications conçues avec Xcode 12 de trouver des appareils Cast sur le réseau. Le bouton Cast devrait maintenant toujours s'afficher. Si aucun appareil n'est disponible lorsque l'utilisateur appuie sur le bouton "Caster", une boîte de dialogue s'affiche pour lui expliquer pourquoi aucun appareil n'est disponible, y compris des informations sur la façon de réactiver l'autorisation d'accès au réseau local.
Modifications apportées au SDK Cast
Première diffusion
La première fois qu'un utilisateur tente de caster du contenu, une boîte de dialogue interstitielle d'accès au réseau local (ANL) s'affiche pour expliquer pourquoi l'accès au réseau local est nécessaire. Elle est suivie de l'invite d'autorisation d'accès au réseau local iOS fournie par Apple. Les maquettes ci-dessous illustrent le flux :
Cast indisponible
À partir du SDK Sender iOS 4.6.0, le bouton Cast s'affiche toujours lorsque l'utilisateur est connecté au Wi-Fi. Lorsque les appareils Cast ne sont pas disponibles, appuyer sur le bouton Cast affiche une boîte de dialogue qui donne à l'utilisateur des indications sur les raisons possibles de l'indisponibilité de Cast, comme indiqué dans les maquettes ci-dessous :
Mettre à jour votre application sur iOS 14
-
Ajouter le SDK Cast iOS 4.8.3 à votre projet
Si vous utilisez CocoaPods, ajoutez le SDK 4.8.3 à votre projet à l'aide de
pod update
.Sinon, récupérez le SDK manuellement.
-
Ajoutez
NSBonjourServices
à votreInfo.plist
Spécifiez
NSBonjourServices
dans votreInfo.plist
pour permettre à la découverte du réseau local de fonctionner sur iOS 14.Vous devrez ajouter
_googlecast._tcp
et_<your-app-id>._googlecast._tcp
en tant que services pour que la découverte des appareils fonctionne correctement.L'appID est votre receiverID, qui est le même ID que celui défini dans votre
GCKDiscoveryCriteria
.Mettez à jour la définition de l'exemple
NSBonjourServices
et remplacez "ABCD1234" par votre appID. -
Ajoutez
NSLocalNetworkUsageDescription
à votreInfo.plist
Nous vous recommandons vivement de personnaliser le message affiché dans l'invite du réseau local en ajoutant une chaîne d'autorisation spécifique à l'application dans le fichier
Info.plist
de votre application pourNSLocalNetworkUsageDescription
, par exemple pour décrire la découverte Cast et d'autres services de découverte, comme DIAL.Ce message s'affichera dans la boîte de dialogue d'accès au réseau local d'iOS, comme indiqué dans la maquette.
-
Publier à nouveau votre application sur l'App Store d'Apple
Nous vous recommandons également de republier votre application en utilisant la version 4.8.3 dès que possible.
Personnalisations
Lancement de la découverte d'appareils Cast
Par défaut, la découverte des appareils Cast est lancée la première fois que l'utilisateur appuie sur le bouton Cast (GCKUICastButton
). Si l'utilisateur tente d'utiliser l'application Cast sur le réseau local pour la première fois après la mise à niveau vers iOS 14, le nouvel interstitiel LNA s'affiche, suivi de la boîte de dialogue des autorisations d'accès au réseau local iOS.
Un nouveau flag est disponible pour vous permettre de contrôler le moment où la découverte des appareils commence et le comportement de certains éléments de l'UX :
startDiscoveryAfterFirstTapOnCastButton: BOOL(true/false)
La valeur par défaut est true
. Cette option ne s'applique que lorsque l'option GCKCastOptions::disableDiscoveryAutostart
est définie sur false
.
Si la valeur est définie sur true
, la détection des appareils Cast démarre lorsqu'un utilisateur appuie sur GCKUICastButton
pour la première fois. Un message informatif s'affiche pour indiquer à l'utilisateur pourquoi l'autorisation d'accès au réseau local est nécessaire. Le message LNA d'iOS 14 s'affiche ensuite.
La découverte des appareils Cast commence une fois le message confirmé.
Lors des lancements suivants de l'application, GCKUICastButton
s'affiche toujours.
Si la valeur est définie sur false
, la découverte des appareils commence en fonction de la valeur du signalement GCKCastOptions::disableDiscoveryAutostart
.
Questions fréquentes
Que se passe-t-il si je republie mon application émettrice Cast avec le SDK Cast v4.4.8 et Xcode 12 ?
Il est possible que votre application ne puisse pas détecter les appareils Cast sur le réseau local, sauf si vous avez obtenu un droit d'accès multicast au réseau auprès d'Apple. Notez qu'Apple n'accordera pas de droits de multidiffusion uniquement pour prendre en charge Cast. Si vous prévoyez de compiler votre application avec Xcode 12, vous devez la publier avec Cast 4.6.0.
Si je relance mon application avec le nouveau SDK Cast, qu'est-ce que mes utilisateurs sous iOS 13 ou version antérieure vont constater ?
Ils continueront de bénéficier de la même expérience utilisateur qu'avant la nouvelle version de votre application. Les modifications visibles par les utilisateurs sont limitées à ceux qui utilisent iOS 14.
Que devrai-je faire pour mettre à jour mon application une fois la nouvelle version du SDK Cast publiée ?
- Mettez à jour le
Info.plist
de votre application pour inclure une description de l'utilisation du réseau local. - Ajoutez
NSBonjourServices
àInfo.plist
de votre application et fournissez les noms de service Bonjour pour Cast et l'ID de votre application. - Mettez à niveau votre application émettrice pour utiliser le SDK Cast 4.6.0.
- Republiez votre application sur l'App Store d'Apple.
Pourquoi les appareils ont-ils cessé de s'afficher dans mon sélecteur d'appareils personnalisé après la mise à niveau vers la version 4.6.0 ?
Il s'agit d'un problème connu qui peut se produire si vous utilisez un sélecteur d'appareils personnalisé au lieu du sélecteur d'appareils standard. Dans la version 4.4.8 du SDK Cast et les versions antérieures, l'analyse des appareils était automatique. À partir de la version 4.6.0, vous devrez appeler explicitement la méthode startDiscovery
sur la classe
GCKDiscoveryManager
pour lancer la découverte des appareils.
Cette modification est due au fait que l'invite d'autorisation d'accès au réseau local (ANL) s'affiche après la première analyse de l'application. Cela peut entraîner l'affichage de boîtes de dialogue d'autorisation à des endroits aléatoires de votre application.
Les développeurs qui créent un sélecteur d'appareils personnalisé pour leur application devront fournir un interstitiel unique avant de lancer l'analyse des appareils pour la première fois dans iOS 14.
iOS 13
Avec iOS 13, de nouvelles exigences en termes d'autorisations ont été introduites, ce qui a un impact sur les applications utilisant le SDK Cast.
À partir du SDK Google Cast version 4.4.3, un SDK supplémentaire est disponible et ne nécessite pas l'autorisation Bluetooth®. Cette fonctionnalité est disponible sur le site pour les développeurs et sur le nouveau google-cast-sdk-no-bluetooth
Cocoapods.
Répartition par application
Voici une explication en fonction de la version du SDK iOS que vous utilisez actuellement :
Applications conçues avec le SDK iOS 12 ou version antérieure
- Action recommandée Les performances de la découverte d'appareils peuvent diminuer sous iOS 13, mais la fonctionnalité restera opérationnelle. Nous recommandons vivement aux développeurs de passer au SDK Cast v4.4.4 dès qu'il sera disponible.
- iOS 13 invite les utilisateurs à accorder des autorisations Bluetooth® à l'application.
Applications créées avec le SDK iOS 13
- Action requise : Mettez à jour le SDK Cast vers la version 4.4.4. Sinon, il est possible que le bouton Cast ne s'affiche pas si l'utilisateur n'accorde pas l'autorisation d'accéder à sa position. Il est nécessaire de passer au SDK Cast 4.4.4 pour garantir une expérience de casting fiable sur iOS 13.