Ab iOS 14 werden im Betriebssystem neue Einschränkungen und Berechtigungen durchgesetzt, die sich auf die Cast-Funktion auswirken. Außerdem wirkt sich das auf die Art und Weise aus, wie Sie das Cast SDK in Ihre App einbinden. Damit Ihre App die Cast-Funktionalität mit den neuesten Versionen von iOS beibehält, müssen Sie Updates vornehmen, um diese Änderungen bei den Berechtigungen zu berücksichtigen.
iOS 14
Entwickler sollten ihre iOS-Absender-Apps für Google Cast auf das Google Cast SDK v4.6.0 oder höher aktualisieren. Diese Versionen unterstützen iOS 14 und die zugehörigen Anforderungen.
Ab iOS 14 werden Nutzer von Apps, die nach Geräten im lokalen Netzwerk suchen, in einem einmaligen Berechtigungsdialogfeld aufgefordert, die Berechtigung zum Suchen nach und Verbinden mit Geräten im lokalen Netzwerk zu erteilen. Die Google Cast-Plattform verwendet das lokale Netzwerk, um Google Cast-Geräte zu erkennen und zu steuern. Wenn der Nutzer die Berechtigung verweigert, kann er nicht streamen.
Wir nehmen einige Änderungen an der Benutzeroberfläche des SDK vor, um die Nutzerfreundlichkeit für Apps zu verbessern, die die Standard-Geräteauswahl verwenden. Durch diese Änderungen der Benutzeroberfläche wird Nutzern deutlicher, warum Berechtigungen für den Zugriff auf das lokale Netzwerk erforderlich sind und wie sie das Streaming aktivieren können, wenn der Zugriff auf Geräte im lokalen Netzwerk deaktiviert wurde.
Apps, die mit Versionen des Cast SDK mit v4.4.8 oder früher erstellt wurden, funktionieren weiterhin, sofern sie mit Xcode 11.7 oder früher erstellt wurden. Wenn Sie Ihre App mit Xcode 12 oder höher für iOS 14 entwickeln, empfehlen wir Ihnen, auf das Cast SDK v4.6.0 oder höher zu aktualisieren, damit Ihre Cast-App weiterhin ordnungsgemäß funktioniert.
Das Cast iOS SDK v4.6.0 oder höher kann mit CocoaPods heruntergeladen werden. Folgen Sie dazu der CocoaPods-Einrichtung oder der manuellen Einrichtung. Diese Version enthält Änderungen am zugrunde liegenden Erkennungsmechanismus, damit Apps, die mit Xcode 12 erstellt wurden, Cast-Geräte im Netzwerk finden können. Die Schaltfläche „Streamen“ sollte jetzt immer angezeigt werden. Wenn keine Geräte verfügbar sind, wenn der Nutzer auf die Schaltfläche „Streamen“ tippt, wird ein Dialogfeld mit einer Anleitung angezeigt, warum Geräte möglicherweise nicht verfügbar sind. Es enthält auch Informationen dazu, wie die Berechtigung für den Zugriff auf das lokale Netzwerk wieder aktiviert werden kann.
Änderungen am Cast SDK
Erstes Streaming
Wenn ein Nutzer zum ersten Mal versucht, Inhalte zu streamen, wird ein Interstitial-Dialogfeld für den Zugriff auf das lokale Netzwerk (Local Network Access, LNA) angezeigt, in dem erklärt wird, warum der Zugriff auf das lokale Netzwerk erforderlich ist. Danach wird die von Apple bereitgestellte Aufforderung zur Erteilung der Berechtigungen für den Zugriff auf das lokale Netzwerk unter iOS angezeigt. Die folgenden Mockups veranschaulichen den Ablauf:
Streamen nicht möglich
Ab dem iOS Sender SDK 4.6.0 wird die Cast-Schaltfläche immer angezeigt, wenn der Nutzer mit dem WLAN verbunden ist. Wenn Cast-Geräte nicht verfügbar sind, wird durch Tippen auf die Cast-Schaltfläche ein Dialogfeld aufgerufen, in dem der Nutzer Hinweise auf mögliche Gründe für die Nichtverfügbarkeit von Cast erhält, wie in den folgenden Mockups dargestellt:
Apps unter iOS 14 aktualisieren
-
Cast iOS SDK 4.8.3 in Ihr Projekt einbinden
Wenn Sie CocoaPods verwenden, fügen Sie das SDK 4.8.3 mit
pod update
zu Ihrem Projekt hinzu.Andernfalls müssen Sie das SDK manuell abrufen.
-
NSBonjourServices
zu IhremInfo.plist
hinzufügenGeben Sie
NSBonjourServices
in IhremInfo.plist
an, damit die Erkennung lokaler Netzwerke unter iOS 14 funktioniert.Sie müssen sowohl
_googlecast._tcp
als auch_<your-app-id>._googlecast._tcp
als Dienste hinzufügen, damit die Geräteerkennung ordnungsgemäß funktioniert.Die appID ist deine receiverID, also dieselbe ID, die in deiner
GCKDiscoveryCriteria
definiert ist.Aktualisieren Sie die folgende Beispieldefinition
NSBonjourServices
und ersetzen Sie „ABCD1234“ durch Ihre App-ID. -
NSLocalNetworkUsageDescription
zu IhremInfo.plist
hinzufügenWir empfehlen dringend, die im Dialogfeld „Lokales Netzwerk“ angezeigte Meldung anzupassen, indem Sie in der Datei
Info.plist
Ihrer App einen app-spezifischen Berechtigungsstring fürNSLocalNetworkUsageDescription
hinzufügen, um z. B. die Suche nach Cast-Geräten und anderen Suchdiensten wie DIAL zu beschreiben.Diese Meldung wird im Dialogfeld „Zugriff auf das lokale Netzwerk“ von iOS angezeigt, wie im Mockup zu sehen ist.
-
App im Apple App Store neu veröffentlichen
Wir empfehlen Ihnen, Ihre App so schnell wie möglich mit Version 4.8.3 neu zu veröffentlichen.
Anpassungen
Initiierung der Google Cast-Geräteerkennung
Die Suche nach Cast-Geräten wird standardmäßig gestartet, wenn der Nutzer zum ersten Mal auf das Cast-Symbol GCKUICastButton
tippt. Wenn der Nutzer die Cast-App nach dem Upgrade auf iOS 14 zum ersten Mal im lokalen Netzwerk verwendet, wird zuerst das neue LNA-Interstitial und dann das iOS-Dialogfeld für die Berechtigungen für den Zugriff auf das lokale Netzwerk angezeigt.
Mit einem neuen Flag können Sie steuern, wann die Gerätesuche beginnt, und das Verhalten bestimmter Elemente der Benutzeroberfläche anpassen:
startDiscoveryAfterFirstTapOnCastButton: BOOL(true/false)
Der Standardwert ist true
. Dieses Flag gilt nur, wenn das Flag GCKCastOptions::disableDiscoveryAutostart
auf false
gesetzt ist.
Wenn diese Option auf true
festgelegt ist, beginnt die Google Cast-Geräteerkennung, wenn ein Nutzer zum ersten Mal auf das GCKUICastButton
tippt. Dem Nutzer wird eine Informationsmeldung angezeigt, in der erklärt wird, warum die Berechtigung für das lokale Netzwerk erforderlich ist. Danach wird die LNA-Mitteilung für iOS 14 angezeigt.
Die Suche nach Übertragungsgeräten beginnt, nachdem die Meldung bestätigt wurde.
Bei nachfolgenden App-Starts wird immer GCKUICastButton
angezeigt.
Wenn der Wert auf false
gesetzt ist, beginnt die Gerätesuche basierend auf dem Wert des Flags GCKCastOptions::disableDiscoveryAutostart
.
Häufig gestellte Fragen
Was passiert, wenn ich meine Cast-Absender-App mit dem Cast SDK v4.4.8 und Xcode 12 neu veröffentliche?
Ihre App kann möglicherweise keine für Google Cast optimierten Geräte im lokalen Netzwerk finden, es sei denn, Sie haben von Apple eine Berechtigung für Netzwerk-Multicast erhalten. Hinweis: Apple gewährt keine Multicast-Berechtigungen ausschließlich zur Unterstützung von Google Cast. Wenn Sie Xcode 12 verwenden möchten, sollten Sie Ihre App mit Cast 4.6.0 veröffentlichen.
Was passiert, wenn ich meine App mit dem neuen Cast SDK neu veröffentliche und meine Nutzer iOS 13 oder früher verwenden?
Sie sehen weiterhin dieselbe Benutzeroberfläche wie vor der Neuveröffentlichung Ihrer App. Für Nutzer mit iOS 14 sind nur die Änderungen sichtbar.
Was muss ich tun, um meine App zu aktualisieren, wenn die neue Version des Cast SDK veröffentlicht wird?
- Aktualisieren Sie die
Info.plist
Ihrer App, um eine Beschreibung der Nutzung des lokalen Netzwerks hinzuzufügen. - Fügen Sie
NSBonjourServices
zurInfo.plist
Ihrer App hinzu und geben Sie die Bonjour-Dienstnamen für Cast und Ihre App-ID an. - Führen Sie ein Upgrade Ihrer Sender-App auf Cast SDK 4.6.0 durch.
- Veröffentlichen Sie Ihre App noch einmal im App Store.
Warum werden Geräte nach dem Upgrade auf Version 4.6.0 nicht mehr in meiner benutzerdefinierten Geräteauswahl angezeigt?
Das ist ein bekanntes Problem, das auftreten kann, wenn Sie eine benutzerdefinierte Geräteauswahl anstelle der Standardgeräteauswahl verwenden. In Version 4.4.8 des Cast SDK und früher wurde die Gerätesuche automatisch durchgeführt. Ab Version 4.6.0 müssen Sie die Methode startDiscovery
der Klasse
GCKDiscoveryManager
explizit aufrufen, um die Gerätesuche zu starten.
Der Grund für diese Änderung ist, dass die Aufforderung für die Berechtigungen für den Zugriff über das lokale Netzwerk (Local Network Access, LNA) erst angezeigt wird, nachdem die App zum ersten Mal gescannt hat. Dies kann dazu führen, dass Berechtigungsdialogfelder an zufälligen Stellen in Ihrer App angezeigt werden.
Entwickler, die eine benutzerdefinierte Geräteauswahl für ihre App erstellen, müssen vor dem ersten Start des Gerätescans in iOS 14 ein einmaliges Interstitial bereitstellen.
iOS 13
Mit iOS 13 wurden neue Berechtigungsanforderungen eingeführt, die sich auf Apps auswirken, die das Google Cast SDK verwenden.
Ab Google Cast SDK v4.4.3 ist ein zusätzliches SDK verfügbar, für das keine Bluetooth®-Berechtigung erforderlich ist. Sie ist sowohl auf der Entwicklerwebsite als auch in den neuen google-cast-sdk-no-bluetooth
Cocoapods verfügbar.
Aufschlüsselung nach Apps
Hier finden Sie eine Aufschlüsselung je nach der Version des iOS SDK, die Sie derzeit verwenden:
Apps, die mit dem iOS 12 SDK oder einer früheren Version erstellt wurden
- Maßnahme empfohlen Die Leistung der Geräteerkennung kann bei iOS 13 abnehmen, funktioniert aber weiterhin. Wir empfehlen Entwicklern dringend, ein Upgrade auf Cast SDK v4.4.4 durchzuführen, sobald es verfügbar ist.
- Unter iOS 13 werden Nutzer aufgefordert, der App Bluetooth®-Berechtigungen zu erteilen.
Mit dem iOS 13 SDK erstellte Apps
- Maßnahme erforderlich: Aktualisieren Sie auf Cast SDK 4.4.4. Andernfalls wird die Cast-Schaltfläche möglicherweise nicht angezeigt, wenn der Nutzer keine Standortberechtigung erteilt. Ein Upgrade auf das Cast SDK 4.4.4 ist erforderlich, um ein zuverlässiges Streaming unter iOS 13 zu gewährleisten.