iOS-Berechtigungen und Discovery

Ab iOS 14 gelten neue Einschränkungen und Berechtigungen, die sich auf die Nutzung von Cast auswirken. Sie wirkt sich auch darauf aus, Integrieren Sie das Cast SDK in Ihre App. Damit Ihre App die Cast-Funktion aufrechterhalten kann die neuesten iOS-Versionen installiert haben, müssen Sie Updates vornehmen, Änderungen an den Berechtigungen.

iOS 14

Entwickler sollten ihre iOS Cast-Sender-Apps auf das Google Cast SDK aktualisieren v4.6.0 oder höher. Diese Versionen unterstützen iOS 14 und die entsprechenden Anforderungen.

Ab iOS 14 werden Apps, die im lokalen Netzwerk nach Geräten suchen, werden Nutzer jetzt über ein Dialogfeld mit einmaligen Berechtigungen aufgefordert, es zu finden und eine Verbindung herzustellen Geräte im lokalen Netzwerk. Die Cast-Plattform nutzt das lokale Netzwerk, um Übertragungsgeräte steuern. Wenn der Nutzer also die Berechtigung verweigert, kann er Folgendes nicht tun: Streamen.

Um die Nutzerfreundlichkeit zu verbessern, nehmen wir einige UX-Änderungen am SDK vor. für Apps, die die Standard-Geräteauswahl verwenden. Diese UX-Änderungen damit Nutzer besser verstehen, warum Zugriffsberechtigungen auf das lokale Netzwerk erforderlich sind. und wie Sie das Streamen aktivieren, wenn der Zugriff auf das lokale Netzwerkgerät aktiviert wurde. deaktiviert.

Apps, die mit Versionen des Cast SDK mit Version 4.4.8 oder niedriger erstellt wurden, werden weiterhin unterstützt funktionieren, solange sie mit Xcode 11.7 oder älter erstellt wurden. Wenn Sie iOS 14 mit Xcode 12 oder höher entwickelt haben, empfehlen wir ein Update auf die SDK 4.6.0 oder höher, damit deine Cast App weiterhin richtig funktioniert.

Das Cast iOS SDK v4.6.0 oder höher kann mit CocoaPods heruntergeladen werden, CocoaPods-Einrichtung oder manuell manuelle Einrichtung durchgeführt. Dieser Release enthält Änderungen am zugrunde liegenden Erkennungsmechanismus, um Apps zuzulassen, die mit Xcode 12 entwickelt, um Übertragungsgeräte im Netzwerk zu finden. Das Cast-Symbol sollte werden jetzt immer angezeigt. Wenn keine Geräte verfügbar sind, wenn der Nutzer auf das Cast-Symbol tippt wird ein Dialogfeld mit Informationen dazu angezeigt, warum die Geräte möglicherweise nicht verfügbar, einschließlich Informationen zum erneuten Aktivieren des lokalen Netzwerkzugriffs Berechtigung.

Cast SDK-Änderungen

Erstmaliges Streamen

Wenn ein Nutzer zum ersten Mal etwas streamt, wird ein lokaler Netzwerkzugriff (Local Network Access, LNA) verwendet. Interstitial-Dialogfeld erscheint, in dem erläutert wird, warum der Zugriff auf das lokale Netzwerk erforderlich, gefolgt von den von Apple bereitgestellten Berechtigungen für den lokalen iOS-Netzwerkzugriff . Die folgenden Modelle veranschaulichen den Ablauf:

Ablauf für Zugriffsberechtigungen für das lokale Netzwerk

Streamen nicht verfügbar

Ab Version 4.6.0 des iOS Sender SDK wird das Cast-Symbol immer angezeigt, wenn der Nutzer mit dem WLAN verbunden ist. Wenn Übertragungsgeräte nicht verfügbar sind, auf das Cast-Symbol tippt, öffnet sich ein Dialogfeld, Hinweise zu möglichen Gründen, warum Google Cast nicht verfügbar ist, wie in den folgenden Beispielen gezeigt:

Flow mit Cast nicht verfügbar

App unter iOS 14 aktualisieren

  1. Cast iOS SDK 4.8.1 zu Ihrem Projekt hinzufügen

    Wenn du CocoaPods verwendest, verwende pod update, um deinem Projekt das 4.8.1 SDK hinzuzufügen.

    Andernfalls <ph type="x-smartling-placeholder"></ph> und laden Sie das SDK manuell herunter.

    <ph type="x-smartling-placeholder">
  2. NSBonjourServices zu deinem Info.plist hinzufügen

    Geben Sie NSBonjourServices in Ihrem Info.plist an, um ermöglichen die erfolgreiche Erkennung lokaler Netzwerke unter iOS 14.

    Sie müssen sowohl _googlecast._tcp als auch _<your-app-id>._googlecast._tcp als Dienste für das Gerät damit die Erkennung ordnungsgemäß funktioniert.

    Die appID ist Ihre ReceiverID, also die ID, die in Ihrem GCKDiscoveryCriteria

    Aktualisieren Sie die folgende Beispieldefinition für NSBonjourServices und „ABCD1234“ ersetzen durch Ihre appID.

    &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. NSLocalNetworkUsageDescription hinzufügen zu deinem Info.plist

    Wir empfehlen dringend, dass Sie die Nachricht anpassen, die im lokalen Menü angezeigt wird. Netzwerk-Aufforderung durch Hinzufügen eines App-spezifischen Berechtigungsstrings in der Info.plist-Datei für den NSLocalNetworkUsageDescription, z. B. zur Beschreibung von Cast Discovery- und andere Discovery-Dienste wie DIAL.

    &lt;key&gt;NSLocalNetworkUsageDescription&lt;/key&gt;
    <string>${PRODUCT_NAME} nutzt das lokale Netzwerk, um für Google Cast optimierte Geräte in deinem WLAN zu finden
    Netzwerk.</string>

    Diese Meldung wird als Teil des iOS-Dialogfelds für den lokalen Netzwerkzugriff angezeigt als die im Beispiel dargestellt werden.

    Bild des Dialogfelds „Berechtigungen für den Zugriff auf das lokale Netzwerk streamen“
  4. App im Apple App Store neu veröffentlichen

    Wir empfehlen dir außerdem, deine App mit Version 4.8.1 so schnell wie möglich.

Anpassungen

Erkennung des Übertragungsgeräts starten

Standardmäßig wird die Erkennung des Übertragungsgeräts gestartet, wenn der Nutzer das erste Mal auf das Display tippt. auf das Cast-Symbol (GCKUICastButton). Wenn der Nutzer zum ersten Mal versuchte nach dem Upgrade auf iOS, die Cast App im lokalen Netzwerk zu verwenden 14, erscheint das neue LNA-Interstitial, gefolgt vom iOS Local Network Dialogfeld für Zugriffsberechtigungen.

Ein neues Flag ist verfügbar, mit dem du steuern kannst, wann die Geräteerkennung gestartet wird und dem Verhalten bestimmter Elemente der UX:

startDiscoveryAfterFirstTapOnCastButton: BOOL(true/false)

Der Standardwert ist true. Dieses Flag ist nur anwendbar, wenn das Flag GCKCastOptions::disableDiscoveryAutostart ist auf false festgelegt.

Ist die Richtlinie auf „true“ gesetzt, wird die Erkennung des Übertragungsgeräts gestartet, wenn ein Nutzer auf das GCKUICastButton. Eine Mitteilung zur Information wird dem Nutzer angezeigt und teilt ihm mit, warum die Berechtigung für das lokale Netzwerk aktiviert ist. erforderlich. Im Anschluss an diese Meldung wird die LNA-Meldung für iOS 14 angezeigt. Die Erkennung des Übertragungsgeräts beginnt, nachdem die Nachricht bestätigt wurde.

Bei nachfolgenden App-Starts wird immer GCKUICastButton angezeigt.

Wenn die Richtlinie auf false gesetzt ist, beginnt die Geräteerkennung auf Grundlage des Wertes des Flag GCKCastOptions::disableDiscoveryAutostart

Häufig gestellte Fragen

Was passiert, wenn ich meine Cast Sender App mit dem Cast SDK v4.4.8 und Xcode 12?

Deine App kann möglicherweise keine Übertragungsgeräte im lokalen Netzwerk finden es sei denn, Sie haben eine Netzwerk-Multicast-Berechtigung von Apple erhalten. Beachte, dass Apple Multicast-Berechtigungen nicht ausschließlich für den zur Unterstützung von Cast. Wenn Sie mit Xcode 12 entwickeln möchten, sollten Sie Ihre App veröffentlichen. mit Cast 4.6.0.

Was passiert, wenn ich meine App mit dem neuen Cast SDK neu veröffentliche funktionieren meine Nutzer mit iOS 13 oder niedriger?

Die Nutzer sehen weiterhin die gewohnte Nutzererfahrung. eine Neuveröffentlichung eurer App. Für Nutzer sichtbare Änderungen sind auf Nutzer beschränkt iOS 14 ausgeführt werden.

Was muss ich tun, um meine App zu aktualisieren, sobald das neue des Cast SDK veröffentlicht wird?

  • Aktualisiere die Info.plist deiner App so, dass sie ein lokales Netzwerk enthält Nutzungsbeschreibung.
  • NSBonjourServices zu deiner App hinzufügen Info.plist und gib die Bonjour-Dienstnamen für Cast an. und Ihre App-ID.
  • Aktualisiere deine Absender-App auf das Cast SDK 4.6.0.
  • Veröffentlichen Sie Ihre App erneut im Apple App Store.

Warum werden Geräte nicht mehr in meinem benutzerdefinierten Gerät angezeigt? nach dem Upgrade auf 4.6.0?

Dies ist ein bekanntes Problem, das auftreten kann, wenn Sie ein benutzerdefiniertes Gerät verwenden statt der Standard-Geräteauswahl. In Version 4.4.8 des Für das Cast SDK und frühere Versionen wurden die Geräte automatisch gescannt. Ab Version 4.6.0 ist, musst du explizit die startDiscovery auf der GCKDiscoveryManager, um die Geräteerkennung zu starten.

Der Grund für diese Änderung ist, dass der lokale Netzwerkzugriff (Local Network Access, LNA) Eine Berechtigungsaufforderung wird angezeigt, nachdem die App das erste Mal gescannt hat . Dies kann dazu führen, dass Dialogfelder für Berechtigungen an zufälliger Stelle angezeigt werden in Ihrer App.

Entwickler, die eine benutzerdefinierte Geräteauswahl für ihre App erstellen, wird erwartet, dass vor der Initiierung des Geräts ein einmaliges Interstitial bereitgestellt wird. zum ersten Mal unter iOS 14.

iOS 13

Mit iOS 13 wurden neue Berechtigungsanforderungen eingeführt, die sich auf Apps, die das Google Cast SDK verwenden.

Ab Version 4.4.3 des Google Cast SDK ist ein zusätzliches SDK verfügbar, keine Bluetooth®-Berechtigung erforderlich. Diese finden Sie sowohl im Entwickler- Website und auf der neuen google-cast-sdk-no-bluetooth CocoaPods.

Aufschlüsselung nach Apps

Hier sehen Sie eine Aufteilung in Abhängigkeit von der Version des iOS-SDKs, das Sie derzeit verwenden. mit:

Apps, die mit dem iOS 12 SDK oder einer älteren Version erstellt wurden

  • Empfohlene Aktion: Die Leistung bei der Geräteerkennung kann sich verschlechtern, wenn iOS 13 ausgeführt, funktioniert aber weiterhin. Wir empfehlen dringend -Entwickler ein Upgrade auf Version 4.4.4 des Cast SDK durchführen, sofern verfügbar.
  • Unter iOS 13 werden Nutzer aufgefordert, der App Bluetooth®-Berechtigungen zu erteilen.

Apps, die mit dem iOS 13 SDK erstellt wurden

  • Wichtiger Hinweis: Aktualisieren Sie auf das Cast SDK 4.4.4. Andernfalls kann das Cast-Symbol möglicherweise nicht werden angezeigt, wenn der Nutzer keine Berechtigung zur Standortermittlung erteilt. Upgrade auf das Cast SDK Version 4.4.4 ist erforderlich, um unter iOS 13 eine zuverlässige Übertragung zu ermöglichen.