iOS-Berechtigungen und Discovery

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

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 App die Cast-Funktion mit der neuesten iOS-Version aufrechterhalten kann, müssen Sie Aktualisierungen vornehmen, um diese Änderungen an den Berechtigungen vorzunehmen.

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 werden Nutzer bei Anwendungen, die nach Geräten im lokalen Netzwerk suchen, mit einem einmaligen Berechtigungsdialog dazu aufgefordert, lokale Netzwerkgeräte zu finden und sich mit ihnen zu verbinden. Die Übertragungsplattform verwendet das lokale Netzwerk, um Übertragungsgeräte zu erkennen und zu steuern. Wenn der Nutzer also die Berechtigung verweigert, kann er nicht streamen.

Wir nehmen einige UX-Änderungen am SDK für Apps vor, die die Standard-Geräteauswahl verwenden, um die Nutzerfreundlichkeit zu verbessern. Durch diese UX-Änderungen ist für Nutzer besser ersichtlich, warum Berechtigungen für den lokalen Netzwerkzugriff erforderlich sind und wie das Streamen aktiviert werden kann, wenn der Zugriff auf lokale Netzwerkgeräte deaktiviert wurde.

Apps, die mit Versionen des Cast SDK in der Version 4.4.8 oder niedriger erstellt wurden, funktionieren weiterhin, sofern sie mit Xcode 11.7 oder früher erstellt wurden. Wenn Sie Builds für iOS 14 mit Xcode 12 oder höher erstellen, empfehlen wir Ihnen, auf das Cast SDK 4.6.0 oder höher zu aktualisieren, damit Ihre Cast App weiterhin ordnungsgemäß funktioniert.

Version 4.6.0 oder höher des Cast iOS SDK 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 Apps, 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. Dazu gehört auch, wie die Berechtigung für den lokalen Netzwerkzugriff wieder aktiviert wird.

Änderungen beim Cast SDK

Streamen zum ersten Mal

Wenn ein Nutzer zum ersten Mal versucht, zu streamen, wird ein Dialogfeld für einen lokalen Netzwerkzugriff (Locally Access Access, LNA) eingeblendet, in dem erläutert wird, warum der Zugriff auf das lokale Netzwerk erforderlich ist. Danach wird die von Apple bereitgestellte Berechtigungsaufforderung für den lokalen Netzwerkzugriff von iOS angezeigt. Die folgenden Beispiele veranschaulichen den Ablauf:

Ablauf für Berechtigungen für lokalen Netzwerkzugriff

Streamen nicht möglich

Ab Version 4.6.0 des iOS Sender SDK wird das Cast-Symbol immer angezeigt, wenn der Nutzer mit dem 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 erfahren kann, warum Cast nicht verfügbar ist. Dies wird anhand der folgenden Beispiele veranschaulicht:

Ablauf mit Streaming nicht verfügbar

App unter iOS 14 aktualisieren

  1. Cast-iOS SDK 4.7.0 Ihrem Projekt hinzufügen

    Wenn Sie CocoaPods verwenden, fügen Sie dem Projekt das SDK 4.7.0 mit pod update hinzu.

    Andernfalls laden Sie das SDK manuell ein.

  2. NSBonjourServices zu Info.plist hinzufügen

    Geben Sie NSBonjourServices in Ihrer Info.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 Anwendungs-ID ist deine Empfänger-ID, also die ID, die in deinem GCKDiscoveryCriteria definiert ist.

    Aktualisieren Sie die folgende Beispiel-NSBonjourServices-Definition und ersetzen Sie „&1“ ABCD1234 durch Ihre App-ID.

    <key>NSBonjourServices</key>
    <array>
      <string>_googlecast._tcp</string> <string>_ABCD1234._googlecast._tcp</string>
      </array>
    
  3. NSLocalNetworkUsageDescription zu Info.plist hinzufügen

    Wir empfehlen dringend, die Nachricht, die in der Eingabeaufforderung für das lokale Netzwerk angezeigt wird, anzupassen. Fügen Sie dazu einen App-spezifischen Berechtigungsstring in die Datei Info.plist Ihrer App für NSLocalNetworkUsageDescription ein, z. B. zur Beschreibung der Cast-Erkennung und anderer Erkennungsdienste wie DIAL.

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

    Diese Meldung wird im Dialogfeld „iOS Local Network Access“ (Lokales Netzwerk – Zugriff) angezeigt, wie im Beispiel zu sehen.

    Bild für das Dialogfeld „Berechtigungen für den lokalen Netzwerkzugriff streamen“
  4. App im App Store noch einmal veröffentlichen

    Wir empfehlen dir, deine App so bald wie möglich mit 4.7.0 neu zu veröffentlichen.

Anpassungen

Einführung der Cast-Geräteerkennung

Standardmäßig wird die Cast-Geräteerkennung gestartet, 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 eingeblendet, gefolgt vom Dialogfeld für die Berechtigungen für das lokale iOS-Netzwerkzugriff.

Es gibt ein neues Flag, mit dem Sie steuern können, wann die Geräteerkennung gestartet wird und wie bestimmte Elemente der UX funktionieren:

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 Übertragungsgeräts, wenn ein Nutzer zum ersten Mal auf die GCKUICastButton tippt. Der Nutzer wird mit einer Informationsnachricht darüber informiert, warum die lokale Netzwerkberechtigung erforderlich ist. Danach wird die iOS 14-LNA-Nachricht angezeigt. Die Erkennung von Übertragungsgeräten beginnt, nachdem die Nachricht bestätigt wurde.

Bei nachfolgenden App-Einführungen wird GCKUICastButton immer 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 Version 4.4.8 und Xcode 12 neu veröffentlichst?

Ihre App kann Übertragungsgeräte im lokalen Netzwerk möglicherweise nicht erkennen, wenn Sie keine Netzwerk-Multicast-Berechtigung von Apple erhalten haben. Hinweis: Apple erteilt Multicast-Berechtigungen nicht ausschließlich zur Unterstützung von Cast. Wenn Sie vorhaben, mit Xcode 12 zu erstellen, sollten Sie Ihre 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 weiterhin dieselben Funktionen wie vor der Veröffentlichung deiner App. Für Nutzer sichtbare Änderungen unter iOS 14 sind nur für sie sichtbar.

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

  • Aktualisiere deine Info.plist-Datei so, dass sie eine Beschreibung der lokalen Netzwerknutzung enthält.
  • Füge NSBonjourServices in die Info.plist deiner App ein 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 App Store von Apple.

Warum werden Geräte nach dem Upgrade auf Version 4.6.0 nicht mehr in meiner benutzerdefinierten Geräteauswahl 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 SDK und niedriger war das automatische Scannen von Geräten. 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 ist, dass die Aufforderung für den 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ällig ausgewählten 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 Gerätescannen starten.

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 steht ein zusätzliches SDK ohne die Unterstützung des Gastmodus zur Verfügung, für das keine Bluetooth®-Berechtigung erforderlich ist. Dies ist sowohl auf der Entwicklerwebsite als auch auf den neuen CocoaPods von google-cast-sdk-no-bluetooth verfügbar. Zur Erinnerung: Mit der Gastmodus-Funktion kann die Absender-App Übertragungsgeräte in einer bestimmten Entfernung erkennen, ohne sich im selben Netzwerk zu befinden. Hierfür 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 beibehalten werden

  • Der Schlüssel Privacy - Bluetooth Always Usage Description muss hinzugefügt werden.
  • Füge deiner Info.plist einen String hinzu, um die Bluetooth®-Nutzung für deine Nutzer zu erklären.

Unterstützung für den Gastmodus muss entfernt werden

  • Verhindert, dass Ihre App Bluetooth Bluetooth®-Anforderungen erfordert.
  • Integrieren Sie die neueste Version des Google Cast SDK ohne Bluetooth®-Unterstützung.
  • Dies ist sowohl auf der Entwicklerwebsite als auch auf den neuen CocoaPods von google-cast-sdk-no-bluetooth verfügbar.

Aufschlüsselung nach Apps

Die Aufschlüsselung richtet sich nach der Version des iOS SDK, die Sie aktuell verwenden:

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 abnehmen, funktioniert aber weiterhin. Wir empfehlen Entwicklern dringend, ein Upgrade auf das Cast SDK v4.4.4 durchzuführen, sofern verfügbar.
  • Nutzer von iOS 13 werden aufgefordert, der App Bluetooth®-Berechtigungen zu gewähren.

Apps, die mit dem iOS 13 SDK erstellt wurden

  • Aktion erforderlich: Wenn der Nutzer keine Berechtigung zur Standortermittlung erteilt, wird ein Update auf das Cast SDK 4.4.4 ausgeführt. Andernfalls wird das Cast-Symbol 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 Integrieren des Gastmodus und zum Deaktivieren des Gastmodus mit dem Google Cast SDK und ohne Bluetooth®-Unterstützung finden Sie in der Entwicklerdokumentation.