Ab iOS 14 erzwingt das Betriebssystem neue Einschränkungen und Berechtigungen, die sich auf die Nutzung von Cast auswirken. Die Änderung wirkt sich auch darauf aus, wie Sie das Cast SDK in Ihrer App integrieren. Damit die Cast-Funktion Ihrer App auch bei den neuesten iOS-Versionen gewahrt bleibt, müssen Sie entsprechende Änderungen an den Berechtigungen vornehmen.
iOS 14
Entwickler sollten ihre iOS Cast-Sender-Apps auf Version 4.6.0 oder höher des Google Cast SDK aktualisieren. Diese Versionen unterstützen iOS 14 und die entsprechenden Anforderungen.
Ab iOS 14 fordern Apps, die im lokalen Netzwerk nach Geräten suchen, Nutzern jetzt ein Dialogfeld mit einmaligen Berechtigungen auf, um lokale Netzwerkgeräte zu finden und eine Verbindung zu ihnen herzustellen. Die Cast-Plattform verwendet das lokale Netzwerk, um Übertragungsgeräte zu finden und zu steuern. Wenn der Nutzer die Berechtigung ablehnt, kann er nicht streamen.
Um die Nutzerfreundlichkeit zu verbessern, nehmen wir einige UX-Änderungen am SDK für Apps vor, für die die Standard-Geräteauswahl verwendet wird. Diese Änderungen an der UX machen deutlich, warum Nutzer Zugriffsberechtigungen für das lokale Netzwerk benötigen und wie das Streamen aktiviert wird, wenn der Zugriff auf lokale Netzwerkgeräte deaktiviert ist.
Apps, die mit Version 4.4.8 oder niedriger des Cast SDK erstellt wurden, funktionieren weiterhin, solange sie mit Xcode 11.7 oder niedriger erstellt wurden. Wenn Sie eine App für iOS 14 mit Xcode 12 oder höher entwickeln, empfehlen wir ein Update auf das Cast SDK 4.6.0 oder höher, damit Ihre Cast App weiterhin korrekt funktioniert.
Das Cast iOS SDK 4.6.0 oder höher kann mit CocoaPods heruntergeladen werden. Folgen Sie dazu der CocoaPods-Einrichtung oder manuell über die manuelle Einrichtung. Dieser Release enthält Änderungen am zugrunde liegenden Erkennungsmechanismus, damit Apps, die mit Xcode 12 erstellt wurden, Übertragungsgeräte im Netzwerk finden können. Das Cast-Symbol sollte jetzt immer angezeigt werden. Wenn keine Geräte verfügbar sind, wenn der Nutzer auf das Cast-Symbol tippt, wird ein Dialogfeld angezeigt, in dem erklärt wird, warum Geräte nicht verfügbar sind, einschließlich Informationen dazu, wie die Berechtigung für den Zugriff auf das lokale Netzwerk wieder aktiviert wird.
Änderungen am Cast SDK
Erstes Streamen
Wenn ein Nutzer zum ersten Mal versucht, zu streamen, wird ein Interstitial-Dialogfeld für den lokalen Netzwerkzugriff (LNA) eingeblendet, in dem erklärt wird, warum der Zugriff auf das lokale Netzwerk erforderlich ist, gefolgt von der Eingabeaufforderung zu den Berechtigungen für den Zugriff auf das lokale Netzwerk, die von Apple bereitgestellt werden. Die folgenden Modelle veranschaulichen den Ablauf:
Streamen nicht verfügbar
Ab Version 4.6.0 des iOS Sender SDK wird das Cast-Symbol immer angezeigt, wenn der Nutzer mit einem WLAN verbunden ist. Wenn Übertragungsgeräte nicht verfügbar sind, wird durch Tippen auf das Cast-Symbol ein Dialogfeld eingeblendet, in dem der Nutzer Hinweise auf mögliche Gründe dafür erhält, wie im Folgenden zu sehen ist:
App unter iOS 14 aktualisieren
-
Fügen Sie Ihrem Projekt das Cast iOS SDK 4.8.0 hinzu.
Wenn Sie CocoaPods verwenden, fügen Sie Ihrem Projekt das SDK 4.8.0 mit
pod update
hinzu.Alternativ können Sie das SDK manuell abrufen.
-
NSBonjourServices
zuInfo.plist
hinzufügenGib
NSBonjourServices
in deinemInfo.plist
an, damit die lokale Netzwerkerkennung unter iOS 14 erfolgreich ist.Du musst 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. Das ist dieselbe ID, die in
GCKDiscoveryCriteria
definiert ist.Aktualisieren Sie die folgende
NSBonjourServices
-Beispieldefinition und ersetzen Sie „ABCD1234“ durch Ihre Anwendungs-ID. -
NSLocalNetworkUsageDescription
zuInfo.plist
hinzufügenWir empfehlen dringend, die Mitteilung in der Aufforderung „Lokales Netzwerk“ anzupassen. Füge dazu in die Datei
Info.plist
deiner App einen app-spezifischen Berechtigungsstring fürNSLocalNetworkUsageDescription
ein. Damit kannst du beispielsweise die Cast-Erkennung und andere Erkennungsdienste wie DIAL beschreiben.Diese Meldung wird im iOS-Dialogfeld „Zugriff auf das lokale Netzwerk“ wie in der Abbildung dargestellt angezeigt.
-
App im App Store neu veröffentlichen
Wir empfehlen außerdem, deine App so schnell wie möglich mit 4.8.0 neu zu veröffentlichen.
Anpassungen
Übertragung der Erkennung von Übertragungsgeräten
Standardmäßig wird die Übertragungsgeräteerkennung gestartet, wenn der Nutzer zum ersten Mal auf das Cast-Symbol (GCKUICastButton
) tippt. Wenn der Nutzer nach dem Upgrade auf iOS 14 zum ersten Mal versucht hat, die Cast App im lokalen Netzwerk zu verwenden, wird die neue LNA-Interstitial-Anzeige eingeblendet, gefolgt vom Dialogfeld mit den Berechtigungen für den Zugriff auf das lokale Netzwerk von iOS.
Mit einem neuen Flag können Sie den Beginn der Geräteerkennung und das Verhalten bestimmter Elemente der UX steuern:
startDiscoveryAfterFirstTapOnCastButton: BOOL(true/false)
Der Standardwert ist true
. Dieses Flag ist nur anwendbar, wenn das Flag GCKCastOptions::disableDiscoveryAutostart
auf false
gesetzt ist.
Ist die Richtlinie auf true
gesetzt, beginnt die Erkennung des Übertragungsgeräts, wenn ein Nutzer zum ersten Mal auf GCKUICastButton
tippt. Der Nutzer wird in einer Meldung darüber informiert, warum eine Berechtigung für das lokale Netzwerk erforderlich ist. Im Anschluss an diese Meldung wird die Meldung „iOS 14 LNA“ angezeigt.
Die Erkennung des Übertragungsgeräts beginnt, nachdem die Nachricht bestätigt wurde.
Bei nachfolgenden App-Starts wird immer GCKUICastButton
angezeigt.
Wenn false
festgelegt ist, wird die Geräteerkennung anhand des Werts des Flags GCKCastOptions::disableDiscoveryAutostart
gestartet.
Häufig gestellte Fragen
Was passiert, wenn ich meine Cast Sender App noch einmal mit dem Cast SDK 4.4.8 und Xcode 12 veröffentliche?
Deine App kann Übertragungsgeräte möglicherweise nur dann im lokalen Netzwerk finden, wenn du von Apple eine Netzwerk-Multicast-Berechtigung erhalten hast. Apple gewährt Multicast-Berechtigungen nicht ausschließlich zur Unterstützung von Cast. Wenn Sie vorhaben, mit Xcode 12 zu entwickeln, sollten Sie Ihre App mit Cast 4.6.0 veröffentlichen.
Was verwenden meine Nutzer mit iOS 13 oder niedriger, wenn ich meine App mit dem neuen Cast SDK noch einmal veröffentliche?
Die Nutzererfahrung vor der erneuten Veröffentlichung deiner App bleibt unverändert. Für Nutzer sichtbare Änderungen sind auf Nutzer mit iOS 14 beschränkt.
Was muss ich tun, um meine App zu aktualisieren, nachdem die neue Version des Cast SDK veröffentlicht wurde?
- Aktualisiere die
Info.plist
deiner App, um eine Beschreibung der lokalen Netzwerknutzung aufzunehmen. - Füge
NSBonjourServices
demInfo.plist
deiner App hinzu und gib die Namen der Bonjour-Dienste für Cast und deine App-ID an. - Aktualisiere deine Sender-App, um das Cast SDK 4.6.0 zu verwenden.
- Veröffentlichen Sie Ihre App noch einmal im Apple App Store.
Warum werden nach dem Upgrade auf Version 4.6.0 keine Geräte mehr in meiner Auswahl für benutzerdefinierte Geräte angezeigt?
Dies ist ein bekanntes Problem, das auftreten kann, wenn Sie eine benutzerdefinierte Geräteauswahl anstelle der Standardauswahl verwenden. In Version 4.4.8 des Cast SDK und früheren Versionen wurde das Scannen von Geräten automatisch durchgeführt. Ab Version 4.6.0 müssen Sie die Methode startDiscovery
in der Klasse
GCKDiscoveryManager
explizit aufrufen, um die Geräteerkennung zu initiieren.
Der Grund für diese Änderung ist, dass die Berechtigungsaufforderung für den lokalen Netzwerkzugriff (Local Network Access, LNA) nach dem ersten Scan der App angezeigt wird. 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 ein einmaliges Interstitial bereitstellen, bevor mit dem Gerätescan zum ersten Mal in iOS 14 begonnen wird.
iOS 13
Mit iOS 13 wurden neue Berechtigungsanforderungen eingeführt, die sich auf Apps auswirken, die das Google Cast SDK verwenden.
Ab Version 4.4.3 des Google Cast SDK ist ein zusätzliches SDK verfügbar, für das keine Bluetooth®-Berechtigung erforderlich ist. Die Funktion ist sowohl auf der Entwicklerwebsite als auch auf den neuen google-cast-sdk-no-bluetooth
CocoaPods verfügbar.
Aufschlüsselung nach Apps
Im Folgenden finden Sie eine Aufschlüsselung je nach der aktuell verwendeten Version des iOS SDK:
Apps, die mit dem iOS 12 SDK oder einer früheren Version erstellt wurden
- Empfohlene Maßnahme: Die Leistung bei der Geräteerkennung kann sich unter iOS 13 verringern, funktioniert aber weiterhin. Wir empfehlen Entwicklern dringend, ein Upgrade auf das Cast SDK 4.4.4 durchzufü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
- Maßnahme erforderlich: Wenn der Nutzer die Berechtigung zur Standortermittlung nicht erteilt hat, wird ein Update auf Cast SDK 4.4.4 benötigt. Andernfalls wird das Cast-Symbol möglicherweise nicht angezeigt. Für ein zuverlässiges Streaming unter iOS 13 ist ein Upgrade auf das Cast SDK 4.4.4 erforderlich.