Ab iOS 14 gelten neue Einschränkungen und Berechtigungen, die sich auf die Nutzerfreundlichkeit von Google Cast auswirken. Außerdem ändert sich die Einbindung des Cast SDK in deine App. Damit die Cast-Funktionalität in deiner App mit den neuesten iOS-Versionen erhalten bleibt, musst du Aktualisierungen vornehmen, um diese Änderungen bei den Berechtigungen zu berücksichtigen.
iOS 14
Entwickler sollten ihre iOS-Cast-Sender-Apps 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 Anwendungen, die nach Geräten im lokalen Netzwerk suchen, über ein einmaliges Berechtigungsdialogfeld aufgefordert, den Zugriff auf Geräte im lokalen Netzwerk zu erlauben. 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 Benutzeroberfläche des SDK für Apps vor, die die Standardgeräteauswahl verwenden. Durch diese Änderungen wird für Nutzer 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, solange sie mit Xcode 11.7 oder früher erstellt wurden. Wenn du Apps für iOS 14 mit Xcode 12 oder höher entwickelst, empfehlen wir dir, auf das Cast SDK v4.6.0 oder höher zu aktualisieren, damit deine Cast-App weiterhin ordnungsgemäß funktioniert.
Das Cast iOS SDK v4.6.0 oder höher kann mit CocoaPods durch Befolgen der CocoaPods-Einrichtung oder manuell durch Befolgen der manuellen Einrichtung heruntergeladen werden. 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 Cast-Schaltfläche sollte jetzt immer angezeigt werden. Wenn keine Geräte verfügbar sind, wenn der Nutzer auf die Cast-Schaltfläche tippt, wird ein Dialogfeld mit Informationen dazu angezeigt, warum Geräte möglicherweise nicht verfügbar sind. Außerdem wird erklärt, 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 zum Zugriff auf das lokale Netzwerk angezeigt, in dem erklärt wird, warum der Zugriff auf das lokale Netzwerk erforderlich ist. Anschließend wird die von Apple bereitgestellte iOS-Aufforderung zu den Berechtigungen für den Zugriff auf das lokale Netzwerk angezeigt. Die folgenden Mocks veranschaulichen den Ablauf:

Cast nicht verfügbar
Ab iOS Sender SDK 4.6.0 wird die Cast-Schaltfläche immer angezeigt, wenn der Nutzer mit einem WLAN verbunden ist. Wenn keine Cast-Geräte verfügbar sind, wird durch Tippen auf die Cast-Schaltfläche ein Dialogfeld mit möglichen Gründen für die Nichtverfügbarkeit von Cast angezeigt. Das ist in den folgenden Mocks zu sehen:

App unter iOS 14 aktualisieren
-
Cast iOS SDK 4.8.4 in dein Projekt einbinden
Wenn du CocoaPods verwendest, füge das SDK 4.8.4 mit
pod updatezu deinem Projekt hinzu. -
zu
Info.plisthinzufügenNSBonjourServicesGib
NSBonjourServicesin deinerInfo.plistan, damit die Suche im lokalen Netzwerk unter iOS 14 funktioniert.Du musst sowohl
_googlecast._tcpals auch_<your-app-id>._googlecast._tcpals Dienste hinzufügen, damit die Gerätesuche ordnungsgemäß funktioniert.Die App-ID ist deine Empfänger-ID, die mit der ID identisch ist, die in deinem
GCKDiscoveryCriteriadefiniert ist.Aktualisiere die folgende Beispieldefinition
NSBonjourServicesund ersetze „ABCD1234“ durch deine App-ID. -
zu
NSLocalNetworkUsageDescriptionhinzufügenInfo.plistWir empfehlen dringend, die in der Aufforderung zum lokalen Netzwerk angezeigte Nachricht anzupassen. Füge dazu in der
Info.plistdeiner App einen app-spezifischen Berechtigungsstring fürNSLocalNetworkUsageDescriptionhinzu, um beispielsweise die Cast- Suche und andere Suchdienste wie DIAL zu beschreiben.Diese Nachricht wird als Teil des iOS-Dialogfelds für den Zugriff auf das lokale Netzwerk angezeigt, wie im Mock zu sehen.
-
App im App Store neu veröffentlichen
Wir empfehlen dir, deine App so bald wie möglich mit Version 4.8.4 neu zu veröffentlichen.
Anpassungen
Start der Suche nach Cast-Geräten
Standardmäßig wird die Suche nach Cast-Geräten gestartet, wenn der Nutzer zum ersten Mal auf die Cast-Schaltfläche (GCKUICastButton) tippt. Wenn der Nutzer die Cast-App zum ersten Mal im lokalen Netzwerk verwendet, nachdem er auf iOS 14 aktualisiert hat, wird das neue Interstitial zum Zugriff auf das lokale Netzwerk angezeigt, gefolgt vom iOS-Dialogfeld für die Berechtigungen für den Zugriff auf das lokale Netzwerk.
Mit einem neuen Flag kannst du steuern, wann die Gerätesuche gestartet wird und wie sich bestimmte Elemente der Benutzeroberfläche verhalten:
startDiscoveryAfterFirstTapOnCastButton: BOOL(true/false)
Der Standardwert ist true. Dieses Flag gilt nur, wenn das Flag
GCKCastOptions::disableDiscoveryAutostart
auf false gesetzt ist.
Wenn es auf true gesetzt ist, wird die Suche nach Cast-Geräten gestartet, wenn ein Nutzer zum ersten Mal auf GCKUICastButton tippt. Dem Nutzer wird eine Informationsnachricht angezeigt, in der erklärt wird, warum die Berechtigung für den Zugriff auf das lokale Netzwerk erforderlich ist. Danach wird die iOS 14-Nachricht zum Zugriff auf das lokale Netzwerk angezeigt.
Die Suche nach Cast-Geräten wird gestartet, nachdem die Nachricht bestätigt wurde.
Bei nachfolgenden App-Starts wird GCKUICastButton immer angezeigt.
Wenn es auf false gesetzt ist, wird die Gerätesuche basierend auf dem Wert des
Flags
GCKCastOptions::disableDiscoveryAutostart gestartet.
Häufig gestellte Fragen
Was passiert, wenn ich meine Cast-Sender-App mit dem Cast SDK v4.4.8 und Xcode 12 neu veröffentliche?
Deine App kann möglicherweise keine Cast-Geräte im lokalen Netzwerk finden es sei denn, du hast von Apple eine Berechtigung für Netzwerk-Multicast erhalten. Apple erteilt keine Multicast-Berechtigungen ausschließlich zur Unterstützung von Cast. Wenn du mit Xcode 12 entwickeln möchtest, solltest du deine App mit Cast 4.6.0 veröffentlichen.
Was passiert für Nutzer, die iOS 13 oder eine frühere Version verwenden, wenn ich meine App mit dem neuen Cast SDK neu veröffentliche?
Sie sehen weiterhin dieselbe Benutzeroberfläche wie vor der Neuveröffentlichung deiner App. Änderungen, die für Nutzer sichtbar sind, sind auf Nutzer beschränkt, die iOS 14 verwenden.
Was muss ich tun, um meine App zu aktualisieren, sobald die neue Version des Cast SDK veröffentlicht wird?
- Aktualisiere die
Info.plist-Datei deiner App, um eine Beschreibung der Nutzung des lokalen Netzwerks hinzuzufügen. - Füge
NSBonjourServiceszurInfo.plistdeiner App hinzu und gib die Bonjour-Dienstnamen für Cast und deine App-ID an. - Aktualisiere deine Sender-App auf Cast SDK 4.6.0.
- Veröffentliche deine App im App Store neu.
Warum werden Geräte in meiner benutzerdefinierten Geräteauswahl nicht mehr angezeigt, nachdem ich auf 4.6.0 aktualisiert habe?
Das ist ein bekanntes Problem, das auftreten kann, wenn du eine benutzerdefinierte Geräte
auswahl anstelle der Standardgeräteauswahl verwendest. In Version 4.4.8 des
Cast SDK und früher wurde die Gerätesuche automatisch durchgeführt. Ab Version
4.6.0 musst du die startDiscovery
Methode in der
GCKDiscoveryManager Klasse explizit aufrufen, um die Gerätesuche zu starten.
Der Grund für diese Änderung ist, dass die Aufforderung zu den Berechtigungen für den Zugriff auf das lokale Netzwerk (LNA) angezeigt wird, nachdem die App zum ersten Mal gesucht hat. Dadurch können Berechtigungsdialogfelder an zufälligen Stellen in deiner App angezeigt werden.
Entwickler, die eine benutzerdefinierte Geräteauswahl für ihre App erstellen, müssen vor dem ersten Start der Gerätesuche unter 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. Es ist sowohl auf der Entwickler
website als auch in den neuen
google-cast-sdk-no-bluetooth CocoaPods verfügbar.
Aufschlüsselung nach Apps
Hier ist eine Aufschlüsselung nach der Version des iOS SDK, die du derzeit verwendest:
Apps, die mit dem iOS 12 SDK oder früher erstellt wurden
- Empfohlene Maßnahme : Die Leistung der Gerätesuche kann unter iOS 13 abnehmen, funktioniert aber weiterhin. Wir empfehlen Entwicklern dringend, auf Cast SDK v4.4.4 zu aktualisieren, sobald es verfügbar ist.
- Unter iOS 13 werden Nutzer aufgefordert, der App Bluetooth®-Berechtigungen zu erteilen.
Apps, die mit dem iOS 13 SDK erstellt wurden
- Maßnahme erforderlich: Aktualisiere 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 Cast SDK 4.4.4 ist erforderlich, um ein zuverlässiges Streaming unter iOS 13 zu gewährleisten.