iOS-Berechtigungen und Discovery

Anwendungen, die nach Geräten im lokalen Netzwerk suchen, fordern Nutzer jetzt über ein einmaliges Berechtigungsdialogfeld auf, Geräte im lokalen Netzwerk zu finden und eine Verbindung zu ihnen herzustellen. Die Cast-Plattform verwendet das lokale Netzwerk, um Cast-Geräte zu finden und zu steuern. Wenn der Nutzer die Berechtigung verweigert, kann er nicht streamen.

Um die Nutzerfreundlichkeit zu verbessern, nehmen wir einige UX-Änderungen am SDK für Apps vor, die die Standard-Geräteauswahl verwenden. Diese UX-Änderungen machen es für Nutzer offensichtlicher, warum Berechtigungen für den Zugriff auf das lokale Netzwerk erforderlich sind und wie sie das Streaming aktivieren können, wenn der Zugriff auf lokale Netzwerkgeräte deaktiviert wurde.

Das Cast iOS SDK v4.6.0 oder höher kann mit dem Swift Package Manager hinzugefügt werden. Folgen Sie dazu der Anleitung zur Einrichtung des Swift Package Managers. Alternativ können Sie es manuell herunterladen. Folgen Sie dazu der Anleitung zur 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. Das Cast-Symbol 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, einschließlich 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 angezeigt, in dem erklärt wird, warum der Zugriff auf das lokale Netzwerk erforderlich ist. Anschließend wird die von Apple bereitgestellte Aufforderung zur Erteilung der Berechtigung für den Zugriff auf das lokale Netzwerk unter iOS angezeigt. Die folgenden Mockups veranschaulichen den Ablauf:

Ablauf für Berechtigungen für den Zugriff auf das lokale Netzwerk

Cast nicht verfügbar

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

Flow mit Cast nicht verfügbar

App aktualisieren

  1. Cast iOS SDK 4.8.6 zu Ihrem Projekt hinzufügen

    Wenn Sie den Swift Package Manager verwenden, aktualisieren Sie das Paket google-cast-ios-sdk auf Version 4.8.6.

    Andernfalls müssen Sie das SDK manuell einbinden.

  2. NSBonjourServices zu Info.plist hinzufügen

    Gib NSBonjourServices in deiner Info.plist an, damit die Erkennung lokaler Netzwerke erfolgreich ist.

    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 Ihre receiverID, die mit der in Ihrer GCKDiscoveryCriteria definierten ID identisch ist.

    Aktualisieren Sie die folgende NSBonjourServices-Beispieldefinition und ersetzen Sie „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 in der Aufforderung für das lokale Netzwerk angezeigte Nachricht anzupassen. Fügen Sie dazu in der Datei Info.plist Ihrer App einen App-spezifischen Berechtigungsstring für NSLocalNetworkUsageDescription hinzu, um beispielsweise die Cast-Erkennung und andere Erkennungsdienste wie DIAL zu beschreiben.

    <key>NSLocalNetworkUsageDescription</key>
    <string>${PRODUCT_NAME} uses the local network to discover Cast-enabled devices on your WiFi
    network.</string>

    Diese Nachricht wird wie im Mockup gezeigt im iOS-Dialogfeld für den Zugriff auf das lokale Netzwerk angezeigt.

    Bild des Dialogfelds für die Berechtigungen für den Zugriff auf das lokale Netzwerk für Cast
  4. App im Apple App Store neu veröffentlichen

    Wir empfehlen Ihnen, Ihre App so bald wie möglich mit Version 4.8.6 neu zu veröffentlichen.

Anpassungen

Initiierung der Cast-Geräteerkennung

Standardmäßig wird die Suche nach Cast-Geräten gestartet, wenn der Nutzer zum ersten Mal auf das Cast-Symbol (GCKUICastButton) tippt. Wenn der Nutzer zum ersten Mal versucht, die Cast-App im lokalen Netzwerk zu verwenden, wird die neue LNA-Interstitial-Anzeige eingeblendet, gefolgt vom Dialogfeld für die iOS-Berechtigungen für den Zugriff auf das lokale Netzwerk.

Es ist ein neues Flag verfügbar, mit dem du steuern kannst, wann die Geräteerkennung beginnt 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 der Wert auf true gesetzt ist, beginnt die Suche nach Cast-Geräten, wenn ein Nutzer zum ersten Mal auf die 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 iOS-LNA-Mitteilung angezeigt. Die Suche nach Übertragungsgeräten beginnt, nachdem die Nachricht bestätigt wurde.

Bei nachfolgenden App-Starts wird GCKUICastButton immer angezeigt.

Wenn der Wert auf false gesetzt ist, wird die Geräteerkennung 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 noch einmal veröffentliche?

Deine App kann möglicherweise keine Übertragungsgeräte im lokalen Netzwerk finden, es sei denn, du hast von Apple eine Multicast-Berechtigung für das Netzwerk erhalten. Apple gewährt keine Multicast-Berechtigungen, die ausschließlich der Unterstützung von Cast dienen. Wenn du deine App mit Xcode 12 erstellen möchtest, solltest du sie mit Cast 4.6.0 veröffentlichen.

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 zur Info.plist Ihrer App hinzu und geben Sie die Bonjour-Dienstnamen für Cast und Ihre App-ID an.
  • Aktualisieren Sie Ihre Sender-App, um das Cast SDK 4.6.0 zu verwenden.
  • Veröffentlichen Sie Ihre App noch einmal im Apple App Store.

Warum werden Geräte nach dem Upgrade auf 4.6.0 nicht mehr in meiner benutzerdefinierten Geräteauswahl angezeigt?

Dies ist ein bekanntes Problem, das auftreten kann, wenn du eine benutzerdefinierte Geräteauswahl anstelle der Standardgeräteauswahl verwendest. In Version 4.4.8 des Cast SDK und früheren Versionen wurde die Gerätesuche automatisch durchgeführt. 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 Berechtigungsaufforderung für den Zugriff auf das lokale Netzwerk (Local Network Access, LNA) erst nach dem ersten Scan der App angezeigt wird. Dies kann dazu führen, dass Berechtigungsdialoge 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 zum ersten Mal nach Geräten suchen.