Ab iOS 14 erzwingt das Betriebssystem neue Einschränkungen und Berechtigungen, die sich auf die Nutzung von Cast auswirken. Außerdem wirkt sich dies darauf aus, wie Sie das Cast SDK in Ihre App einbinden. Damit Ihre Cast-Funktion auch mit den neuesten iOS-Versionen erhalten bleibt, müssen Sie Aktualisierungen vornehmen, um diese Berechtigungsänderungen zu verarbeiten.
iOS 14
Entwickler sollten ihre iOS Cast Sender-Apps auf das Google Cast SDK 4.6.0 oder höher aktualisieren. Diese Versionen unterstützen iOS 14 und die entsprechenden Anforderungen.
Ab iOS 14 werden Nutzer von Anwendungen, die nach Geräten im lokalen Netzwerk suchen, nun mit einem einmaligen Berechtigungsdialogfeld aufgefordert, Geräte im lokalen Netzwerk zu finden und sich damit zu verbinden. Die Cast-Plattform verwendet das lokale Netzwerk, um Cast-Geräte zu erkennen und zu steuern. Wenn der Nutzer die Berechtigung verweigert, kann er keine Inhalte streamen.
Um die Nutzerfreundlichkeit zu verbessern, nehmen wir einige Änderungen an der UX des SDKs vor, die die Standard-Geräteauswahl verwenden. Diese UX-Änderungen machen es für Nutzer deutlicher, warum Berechtigungen für den lokalen Netzwerkzugriff erforderlich sind. Außerdem wird erläutert, wie das Streamen aktiviert werden kann, wenn der Zugriff auf lokale Netzwerkgeräte deaktiviert ist.
Apps, die mit Versionen des Cast SDKs mit Version 4.4.8 oder niedriger erstellt wurden, funktionieren weiterhin, sofern sie mit Xcode 11.7 oder niedriger erstellt wurden. Wenn du ein Build für iOS 14 mit Xcode 12 oder höher erstellst, empfehlen wir dir, ein Update auf das Cast SDK 4.6.0 oder höher durchzuführen, damit deine Cast App weiterhin ordnungsgemäß funktioniert.
Das Cast iOS SDK Version 4.6.0 oder höher kann mit CocoaPods über die CocoaPods-Einrichtung oder manuell über die manuelle Einrichtung heruntergeladen werden. In diesem Release wurden Änderungen am zugrunde liegenden Erkennungsmechanismus vorgenommen, damit Anwendungen, die mit Xcode 12 erstellt wurden, Cast-Gerä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 möglicherweise nicht verfügbar sind. Es enthält auch Informationen dazu, wie Sie die Zugriffsberechtigung für das lokale Netzwerk wieder aktivieren.
Änderungen am Cast SDK
Streamen zum ersten Mal
Wenn ein Nutzer das erste Mal versucht, zu streamen, wird ein Dialogfeld für den lokalen Netzwerkzugriff (LNA) angezeigt, in dem erklärt wird, warum der Zugriff auf das lokale Netzwerk erforderlich ist. Danach wird die von Apple bereitgestellte Berechtigung zum Zugriff auf das lokale Netzwerk angezeigt. Die folgenden Beispiele veranschaulichen den Ablauf:
Streamen nicht verfügbar
Ab iOS Sender SDK 4.6.0 wird das Cast-Symbol immer angezeigt, wenn der Nutzer mit einem WLAN verbunden ist. Wenn Cast-Geräte nicht verfügbar sind, wird beim Tippen auf das Cast-Symbol ein Dialogfeld angezeigt, in dem der Nutzer Hinweise zu möglichen nicht verfügbaren Cast-Einstellungen erhält, wie in den folgenden Beispielen gezeigt:
App auf iOS 14 aktualisieren
-
Cast iOS-SDK 4.7.0 Ihrem Projekt hinzufügen
Wenn Sie CocoaPods verwenden, fügen Sie Ihrem Projekt mit
pod update
das SDK 4.7.0 hinzu.Andernfalls können Sie das SDK manuell einfügen.
-
NSBonjourServices
zuInfo.plist
hinzufügenGeben Sie
NSBonjourServices
imInfo.plist
an, damit die lokale Netzwerkerkennung unter iOS 14 erfolgreich ausgeführt werden kann.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 Receiver-ID. Das ist dieselbe ID, die in deinem
GCKDiscoveryCriteria
definiert ist.Aktualisieren Sie die folgende
NSBonjourServices
-Beispieldefinition und ersetzen Sie "ABCD1234" durch Ihre Anwendungs-ID. -
Füge
NSLocalNetworkUsageDescription
deinemInfo.plist
hinzuWir empfehlen dir dringend, die Meldung in der Anfrage für das lokale Netzwerk anzupassen. Füge dazu der Datei
Info.plist
deiner App einen app-spezifischen Berechtigungsstring fürNSLocalNetworkUsageDescription
hinzu, z. B. zur Beschreibung der Cast-Erkennung und anderer Discovery-Dienste wie DIAL.Diese Meldung wird im Dialogfeld „iOS Local Network Access“ (Lokaler Netzwerkzugriff) angezeigt, wie im Beispiel dargestellt.
-
App im App Store noch einmal veröffentlichen
Wir empfehlen Ihnen, Ihre App so bald wie möglich mit Version 4.7.0 zu veröffentlichen.
Anpassungen
Starten der Cast-Geräteerkennung
Das Tippen auf das Cast-Gerät wird standardmäßig initiiert, wenn der Nutzer das Cast-Symbol (GCKUICastButton
) zum ersten Mal tippt. Wenn der Nutzer zum ersten Mal versucht hat, die Cast App im lokalen Netzwerk zu verwenden, nachdem das Upgrade auf iOS 14 ausgeführt wurde, wird die neue LNA-Interstitial-Anzeige gefolgt vom Dialogfeld „Zugriffsberechtigungen für lokale Netzwerke in iOS“ angezeigt.
Mit dem neuen Flag können Sie steuern, wann die Geräteerkennung gestartet wird und wie sich bestimmte Elemente der UX verhalten:
startDiscoveryAfterFirstTapOnCastButton: BOOL(true/false)
Der Standardwert ist true
. Dieses Flag gilt nur, wenn das Flag GCKCastOptions::disableDiscoveryAutostart
auf false
gesetzt ist.
Wenn true
festgelegt ist, beginnt die Erkennung des Cast-Geräts, wenn ein Nutzer das erste Mal auf GCKUICastButton
tippt. Der Nutzer erhält eine Informationsnachricht, in der er darüber informiert wird, warum die Berechtigung für das lokale Netzwerk erforderlich ist. Nach dieser Meldung wird die LNA-Meldung von iOS 14 angezeigt.
Die Erkennung von Übertragungsgeräten beginnt, nachdem die Nachricht bestätigt wurde.
Bei nachfolgenden App-Starts wird immer GCKUICastButton
angezeigt.
Wenn false
festgelegt ist, beginnt die Geräteerkennung anhand des Werts 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 noch einmal veröffentlichst?
Deine App erkennt Cast-Geräte im lokalen Netzwerk möglicherweise nur, wenn du eine Netzwerk-Multicast-Berechtigung von Apple erhalten hast. Beachten Sie, dass Apple Multicast-Berechtigungen nicht ausschließlich zur Unterstützung von Cast gewährt. Wenn du vorhast, Builds mit Xcode 12 zu erstellen, solltest du deine App mit Cast 4.6.0 veröffentlichen.
Was passiert, wenn Nutzer meine App mit dem neuen Cast SDK noch einmal veröffentlichen?
Nutzer sehen dieselben Funktionen wie vor der erneuten Veröffentlichung deiner App. Für Nutzer sichtbare Änderungen sind auf iOS 14-Nutzer beschränkt.
Was muss ich tun, um meine App zu aktualisieren, sobald die neue Version des Cast SDKs verfügbar ist?
- Aktualisiere die
Info.plist
deiner App, um eine Beschreibung der lokalen Netzwerknutzung anzugeben. - Füge
NSBonjourServices
zumInfo.plist
deiner App hinzu und gib die Bonjour-Dienstnamen für Cast und deine App-ID an. - Aktualisieren Sie die Absender-App auf das Cast SDK 4.6.0.
- Veröffentlichen Sie Ihre App wieder im Apple App Store.
Warum werden Geräte in meiner benutzerdefinierten Geräteauswahl nach dem Upgrade auf 4.6.0 nicht mehr angezeigt?
Dies 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 SDKs und früher erfolgten die Gerätescans automatisch. Ab Version 4.6.0 müssen Sie die Methode startDiscovery
für die Klasse GCKDiscoveryManager
explizit aufrufen, um die Geräteerkennung zu starten.
Der Grund für diese Änderung besteht darin, dass die Berechtigung für lokalen Netzwerkzugriff (Local Network Access, LNA) angezeigt wird, nachdem die Anwendung zum ersten Mal gescannt wurde. Dies kann dazu führen, dass Dialogfelder für Berechtigungen an zufälligen Stellen in Ihrer App angezeigt werden.
Entwickler, die eine benutzerdefinierte Geräteauswahl für ihre App erstellen, müssen eine einmalige Interstitial-Anzeige bereitstellen, bevor sie unter iOS 14 zum ersten Mal das Scannen von Geräten starten.
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 Version 4.4.3 ist ein zusätzliches SDK ohne Gastmodus-Unterstützung verfügbar, für die keine Bluetooth®-Berechtigung erforderlich ist. Sie ist sowohl auf der Entwicklerwebsite als auch auf den neuen google-cast-sdk-no-bluetooth
CocoaPods verfügbar. Zur Erinnerung: Mit der Gastmodus-Funktion kann die Absender-App Übertragungsgeräte in einer bestimmten physischen Entfernung erkennen, ohne sich im selben Netzwerk zu befinden. Dazu wird eine PIN verwendet, die auf Geräten im Gastmodus angezeigt wird.
So bereiten Sie Ihre App für iOS 13 vor:
Unterstützung des Gastmodus muss fortgesetzt werden
- Der Schlüssel
Privacy - Bluetooth Always Usage Description
muss hinzugefügt werden. - Fügen Sie Ihrem
Info.plist
einen String hinzu, um die Bluetooth®-Nutzung Ihrer Nutzer zu erklären.
Unterstützung für den Gastmodus muss entfernt werden
- Verhindert, dass deine App Bluetooth Bluetooth®-Anforderungen erfüllt.
- Sie können die neueste Version des Google Cast SDK ohne Bluetooth®-Unterstützung einbinden.
- Sie ist sowohl auf der Entwicklerwebsite als auch auf den neuen
google-cast-sdk-no-bluetooth
CocoaPods verfügbar.
App-Aufschlüsselung
Je nach Version des iOS-SDKs sehen Sie hier eine Aufschlüsselung:
Apps, die mit dem SDK für iOS 12 oder niedriger entwickelt wurden
- Empfohlene Maßnahme Die Leistung der Geräteerkennung kann bei Ausführung unter iOS 13 sinken, ist aber weiterhin funktionsfähig. Wir empfehlen Entwicklern, ein Upgrade auf das Cast SDK v4.4.4 durchzuführen, falls verfügbar.
- Unter iOS 13 werden Nutzer aufgefordert, der App Bluetooth®-Berechtigungen zu erteilen.
Apps, die mit dem iOS 13 SDK entwickelt wurden
- Wichtig: Wenn der Nutzer keine Berechtigung zur Standortermittlung erteilt, wird das Cast SDK 4.4.4 aktualisiert oder die Schaltfläche „Übertragen“ wird nicht angezeigt. Für ein zuverlässiges Streaming unter iOS 13 ist ein Upgrade auf das Cast SDK 4.4.4 erforderlich.
- Weitere Informationen zum Einbinden des Gastmodus oder zum Deaktivieren des Gastmodus mit dem Google Cast SDK und ohne Bluetooth®-Unterstützung finden Sie in der Entwicklerdokumentation.