Autorisations et visibilité sur iOS

À partir d'iOS 14, le système d'exploitation appliquera de nouvelles restrictions et autorisations qui affectent l'expérience utilisateur Cast. Cela affectera également la façon dont vous intégrer le SDK Cast dans votre application. Pour que votre application conserve la fonctionnalité Cast avec la dernière version d'iOS, vous devez effectuer des mises à jour modifications des autorisations.

iOS 14

Les développeurs doivent mettre à jour leurs applications émettrices Cast pour iOS afin qu'elles utilisent le SDK Google Cast. v4.6.0 ou version ultérieure. Ces versions sont compatibles avec iOS 14 et sa configuration requise.

À partir d'iOS 14, les applications qui recherchent des appareils sur le réseau local va maintenant inviter les utilisateurs disposant d'une boîte de dialogue d'autorisations ponctuelles à rechercher et à s'y connecter périphériques réseau locaux. La plate-forme Cast utilise le réseau local pour détecter et contrôler les appareils Cast. Ainsi, si un utilisateur refuse une autorisation, il ne pourra pas caste.

Pour améliorer l'expérience utilisateur, nous apportons quelques modifications de l'expérience utilisateur au SDK pour les applications qui utilisent le sélecteur d'appareil standard. Ces modifications de l'expérience utilisateur rendre plus évidente pour les utilisateurs pourquoi les autorisations d'accès au réseau local sont nécessaires, et comment activer la diffusion si l'accès au réseau local a été est désactivé.

Les applications conçues avec des versions du SDK Cast utilisant la version 4.4.8 ou antérieure continueront d'être utilisées. à condition qu'ils soient créés avec Xcode 11.7 ou une version antérieure. Si vous utilisez pour iOS 14 avec Xcode 12 ou une version ultérieure, nous vous recommandons de passer à la SDK 4.6.0 ou version ultérieure pour vous assurer que votre application Cast continuera à fonctionner correctement.

Vous pouvez télécharger la version 4.6.0 ou ultérieure du SDK Cast pour iOS avec CocoaPods en procédant comme suit : 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çu avec Xcode 12 pour détecter les appareils Cast sur le réseau. L'icône Cast doit désormais toujours afficher. Si aucun appareil n'est disponible lorsque l'utilisateur appuie sur l'icône Cast , une boîte de dialogue s'affiche pour vous indiquer pourquoi certains appareils y compris des informations sur la façon de réactiver l'accès au réseau local l'autorisation.

Modifications apportées au SDK Cast

Diffusions pour la première fois

La première fois qu'un utilisateur tente de caster un contenu, un accès au réseau local (LNA) une boîte de dialogue interstitielle s'affiche, expliquant pourquoi l'accès au réseau local est nécessaires, suivies des autorisations d'accès au réseau local iOS fournies par Apple requête. Les simulations ci-dessous illustrent le flux:

Flux des autorisations d'accès au réseau local

Diffusion indisponible

À partir de la version 4.6.0 du SDK expéditeur iOS, l'icône Cast s'affiche toujours lorsque l'utilisateur est connecté au Wi-Fi. Lorsque les appareils Cast sont indisponibles, appuyer sur l'icône Cast pour afficher une boîte de dialogue Indices pour les raisons possibles de l'indisponibilité de Cast, comme illustré dans les simulations ci-dessous:

Flow avec Cast indisponible

Mettre à jour votre application sous iOS 14

  1. Ajouter le SDK Cast pour iOS 4.8.1 à votre projet

    Si vous utilisez CocoaPods, utilisez pod update pour ajouter le SDK 4.8.1 à votre projet.

    Sinon, extraire manuellement le SDK.

  2. Ajouter NSBonjourServices à votre Info.plist

    Indiquez NSBonjourServices dans votre Info.plist pour permettre la réussite de la détection de réseaux locaux sur iOS 14.

    Vous devez ajouter _googlecast._tcp et _<your-app-id>._googlecast._tcp en tant que services pour l'appareil la découverte pour fonctionner correctement.

    La valeur "appID" correspond à votre "receiveID" (ID du récepteur), qui est le même que celui défini dans votre GCKDiscoveryCriteria

    Mettez à jour l'exemple de définition NSBonjourServices suivant et remplacez "ABCD1234" par l'ID de votre application.

    &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. Ajouter NSLocalNetworkUsageDescription à votre Info.plist

    Nous vous recommandons vivement de personnaliser le message affiché dans le invite réseau en ajoutant une chaîne d'autorisation spécifique à l'application dans le fichier Fichier Info.plist pour NSLocalNetworkUsageDescription, comme pour décrire Cast de découverte et d'autres services de découverte, comme DIAL.

    &lt;key&gt;NSLocalNetworkUsageDescription&lt;/key&gt;
    <string>${PRODUCT_NAME} utilise le réseau local pour détecter les appareils compatibles Cast sur votre Wi-Fi.
    réseau.</string>

    Ce message apparaîtra dans la boîte de dialogue iOS Local Network Access en tant que comme indiqué dans la maquette.

    Image de la boîte de dialogue &quot;Autorisations d&#39;accès au réseau local Cast&quot;
  4. Publier à nouveau votre application sur l'App Store d'Apple

    Nous vous recommandons également de publier à nouveau votre application en utilisant la version 4.8.1 dès que possible.

Personnalisations

Lancement de la détection de l'appareil Cast

Par défaut, la détection d'appareils Cast est lancée la première fois que l'utilisateur appuie sur l'icône Cast (GCKUICastButton). Si c'est la première fois que l'utilisateur a tenté d'utiliser l'application Cast sur le réseau local après être passé à iOS 14, le nouvel interstitiel LNA s'affiche, suivi du réseau local iOS. Boîte de dialogue des autorisations d'accès

Un nouvel indicateur vous permet de contrôler le début de la détection d'appareils et le comportement de certains éléments de l'UX:

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 elle est définie sur true, la détection d'appareils Cast démarre lorsqu'un utilisateur appuie sur l'icône GCKUICastButton pour la première fois. Un message d'information s'affichera affiché à l'utilisateur pour lui faire savoir pourquoi l'autorisation du réseau local est nécessaires. Le message LNA iOS 14 s'affichera ensuite. La découverte de l'appareil Cast commence après la confirmation du message.

Lors des lancements d'application suivants, GCKUICastButton s'affiche toujours.

Si elle est définie sur false, la détection d'appareils se lance en fonction de la valeur du paramètre indicateur GCKCastOptions::disableDiscoveryAutostart

Questions fréquentes

Que se passe-t-il si je rediffuse mon Application émettrice Cast avec la version 4.4.8 du SDK Cast 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 pour la multidiffusion réseau auprès d'Apple. Notez qu'Apple n'accordera pas de droits d'accès à la multidiffusion uniquement pour le l'objectif de la compatibilité avec Cast. Si vous envisagez de compiler avec Xcode 12, vous devez publier votre application avec Cast 4.6.0.

Que se passe-t-il si je publie à nouveau mon application avec le nouveau SDK Cast ? Mes utilisateurs exécuteront-ils iOS 13 ou une version antérieure ?

Ils continueront à bénéficier de la même expérience utilisateur une nouvelle publication de votre application. Seuls les utilisateurs peuvent voir les modifications sous iOS 14.

Que dois-je faire pour mettre à jour mon application une fois la nouvelle du SDK Cast est-elle disponible ?

  • Mettez à jour le Info.plist de votre appli pour inclure un réseau local description de l'utilisation.
  • Ajoutez NSBonjourServices aux Info.plist et indiquer les noms des services Bonjour pour Cast et l'ID de votre application.
  • Mettez à jour votre application émettrice pour utiliser le SDK Cast 4.6.0.
  • Republiez votre application sur l'App Store d'Apple.

Pourquoi mes appareils ne s'affichent plus sur mon appareil 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 appareil personnalisé. au lieu du sélecteur d'appareil standard. Dans la version 4.4.8 SDK Cast et les versions antérieures, l'analyse des appareils était automatique. À partir de la version version 4.6.0, vous devez appeler explicitement la méthode startDiscovery sur la GCKDiscoveryManager pour lancer la détection d'appareils.

La raison de ce changement est que l'accès au réseau local (LNA, Local Network Access) une invite d'autorisation s'affiche une fois que l'application a analysé en temps réel. Cela peut entraîner l'affichage aléatoire de boîtes de dialogue d'autorisation dans votre application.

Les développeurs qui créent un sélecteur d'appareil personnalisé pour leur application doivent fournir un interstitiel ponctuel avant le lancement de l'appareil. pour la première fois sous iOS 14.

iOS 13

Avec iOS 13, de nouvelles exigences d'autorisations ont été introduites, applications à l'aide du SDK Google Cast.

À partir de la version 4.4.3 du SDK Google Cast, un SDK supplémentaire ne nécessitent pas d'autorisation Bluetooth®. Cette fonctionnalité est disponible sur la page des développeurs site et sur le nouveau google-cast-sdk-no-bluetooth CocoaPods.

Répartition par application

Voici une analyse détaillée de la version du SDK iOS que vous utilisez actuellement. avec:

Applications créées avec le SDK iOS 12 ou version antérieure

  • Action recommandée : Les performances de la détection d'appareils peuvent diminuer lorsque fonctionnant sous iOS 13, mais sera toujours fonctionnel. Nous vous recommandons vivement les développeurs passent à la version 4.4.4 du SDK Cast, le cas échéant.
  • iOS 13 invitera les utilisateurs à accorder des autorisations Bluetooth® à l'application.

Applications créées avec le SDK iOS 13

  • Action requise: Passez à la version 4.4.4 du SDK Cast, sans quoi l'icône Cast risque de ne pas fonctionner s'affichent si l'utilisateur n'accorde pas l'autorisation d'accéder à la position. Passer au SDK Cast La version 4.4.4 est nécessaire pour garantir une expérience de diffusion fiable sur iOS 13.