À 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égrerez 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 d'envoi 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. Par conséquent, si l'utilisateur refuse l'autorisation, il ne pourra pas caster de contenu.
Pour améliorer l'expérience utilisateur, nous apportons quelques modifications à l'interface utilisateur du SDK pour les applications qui utilisent le sélecteur d'appareils standard. Ces modifications permettent aux utilisateurs de mieux comprendre pourquoi les autorisations d'accès au réseau local sont nécessaires et comment activer le casting si l'accès aux appareils du réseau local a été désactivé.
Les applications créées avec des versions du SDK Cast antérieures à la version 4.4.8 continueront de fonctionner tant qu'elles seront créées avec Xcode 11.7 ou 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 continue de fonctionner correctement.
Le SDK Cast pour iOS v4.6.0 ou version 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étection sous-jacent pour permettre aux applications créées avec Xcode 12 de trouver des appareils Cast sur le réseau. L'icône Cast doit désormais toujours s'afficher. Si aucun appareil n'est disponible lorsque l'utilisateur appuie sur le bouton Cast, une boîte de dialogue s'affiche pour expliquer pourquoi les appareils ne sont peut-être pas disponibles, 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 tentative de casting
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 s'affiche pour expliquer pourquoi l'accès au réseau local est nécessaire, 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 non disponible
À partir du SDK d'envoi iOS 4.6.0, l'icône 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 indique à l'utilisateur les raisons possibles pour lesquelles Cast n'est pas disponible, comme illustré dans les maquettes ci-dessous :

Mettre à jour votre application sur iOS 14
-
Ajoutez le SDK Cast pour iOS 4.8.4 à votre projet
Si vous utilisez CocoaPods, utilisez
pod updatepour ajouter le SDK 4.8.4 à votre projet.Sinon, intégrez le SDK manuellement.
-
Ajoutez
NSBonjourServicesà votreInfo.plistSpécifiez
NSBonjourServicesdans votreInfo.plistpour que la détection du réseau local réussisse sur iOS 14.Vous devrez ajouter
_googlecast._tcpet_<your-app-id>._googlecast._tcpen tant que services pour que la détection des appareils fonctionne correctement.L'appID correspond à votre receiverID, qui est le même ID que celui défini dans votre
GCKDiscoveryCriteria.Mettez à jour l'exemple de définition
NSBonjourServicessuivant et remplacez "ABCD1234" par votre appID. -
Ajoutez
NSLocalNetworkUsageDescriptionà votreInfo.plistNous 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.plistde votre application pour leNSLocalNetworkUsageDescription, par exemple pour décrire la détection Cast et d'autres services de détection, comme DIAL.Ce message s'affichera dans la boîte de dialogue d'accès au réseau local iOS, comme illustré dans la maquette.
-
Publiez à nouveau votre application sur l'App Store d'Apple
Nous vous recommandons également de republier votre application à l'aide de la version 4.8.4 dès que possible.
Personnalisations
Lancement de la détection d'appareils Cast
Par défaut, la détection d'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 avoir effectué la mise à niveau vers iOS 14, la nouvelle boîte de dialogue interstitielle d'accès au réseau local s'affiche, suivie de la boîte de dialogue d'autorisations d'accès au réseau local iOS.
Un nouveau indicateur est disponible pour vous permettre de contrôler le moment où la détection des appareils démarre et le comportement de certains éléments de l'expérience utilisateur :
startDiscoveryAfterFirstTapOnCastButton: BOOL(true/false)
La valeur par défaut est true. Cet indicateur n'est applicable que lorsque l'indicateur
GCKCastOptions::disableDiscoveryAutostart
est défini sur false.
Si la valeur est true, la détection d'appareils Cast démarre lorsqu'un utilisateur appuie sur GCKUICastButton pour la première fois. Un message d'information s'affiche pour indiquer à l'utilisateur pourquoi l'autorisation d'accès au réseau local est nécessaire. Après ce message, le message d'accès au réseau local iOS 14 s'affiche.
La détection d'appareils Cast démarre une fois le message confirmé.
Lors des lancements d'applications suivants, GCKUICastButton s'affiche toujours.
Si la valeur est false, la détection des appareils démarre en fonction de la valeur de l'
indicateur
GCKCastOptions::disableDiscoveryAutostart.
Questions fréquentes
Que se passe-t-il si je republie mon application d'envoi 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 de multidiffusion réseau d'Apple. Notez qu'Apple n'accordera pas de droits de multidiffusion uniquement pour prendre en charge Cast. Si vous prévoyez de créer votre application avec Xcode 12, vous devez la publier avec Cast 4.6.0.
Si je republie mon application avec le nouveau SDK Cast, quelle sera l'expérience de mes utilisateurs sous iOS 13 ou version antérieure ?
Ils continueront de bénéficier de la même expérience utilisateur qu'avant la republication de votre application. Les modifications visibles par l'utilisateur sont limitées aux utilisateurs exécutant iOS 14.
Que dois-je faire pour mettre à jour mon application une fois la nouvelle version du SDK Cast publiée ?
- Mettez à jour le fichier
Info.plistde votre application pour inclure une description de l'utilisation du réseau local - Ajoutez
NSBonjourServicesau fichierInfo.plistde votre application et fournissez les noms de service Bonjour pour Cast et votre ID d'application. - Mettez à niveau votre application d'envoi 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 startDiscovery
méthode sur la
GCKDiscoveryManager classe pour lancer la détection des appareils.
La raison de cette modification est que l'invite d'autorisation d'accès au réseau local s'affiche après la première analyse de l'application. Cela peut entraîner l'affichage de boîtes de dialogue d'autorisations à des endroits aléatoires dans votre application.
Les développeurs qui créent un sélecteur d'appareils personnalisé pour leur application devront fournir une boîte de dialogue interstitielle unique avant de lancer l'analyse des appareils pour la première fois sous iOS 14.
iOS 13
Avec iOS 13, de nouvelles exigences d'autorisations ont été introduites, ce qui a un impact sur les applications utilisant le SDK Google Cast.
À partir du SDK Google Cast v4.4.3, un SDK supplémentaire est disponible et ne nécessite pas l'autorisation Bluetooth®. Il est disponible à la fois sur le site
pour les développeurs et sur le nouveau
google-cast-sdk-no-bluetooth Cocoapods.
Répartition par application
Voici une répartition en fonction de la version du SDK iOS que vous utilisez actuellement :
Applications créées avec le SDK iOS 12 ou version antérieure
- Action recommandée. Les performances de détection des appareils peuvent diminuer sous iOS 13, mais elles resteront fonctionnelles. Nous recommandons vivement aux développeurs de passer au SDK Cast v4.4.4 lorsqu'il sera disponible.
- iOS 13 invitera les utilisateurs à accorder des autorisations Bluetooth® à l'application.
Applications créées avec le SDK iOS 13
- Action requise : passez au SDK Cast 4.4.4, sinon l'icône Cast risque de ne pas s'afficher si l'utilisateur n'accorde pas l'autorisation d'accéder à la position. La mise à niveau vers le SDK Cast 4.4.4 est nécessaire pour garantir une expérience de casting fiable sous iOS 13.