Autorizzazioni e rilevamento su iOS

A partire da iOS 14, il sistema operativo applicherà nuove limitazioni e autorizzazioni che influiscono sull'esperienza utente di trasmissione. Influirà anche sul modo in cui integrare l'SDK Cast nella tua app. Per fare in modo che l'app mantenga la funzionalità di trasmissione con le ultime versioni di iOS, devi apportare aggiornamenti per modifiche alle autorizzazioni.

iOS 14

Gli sviluppatori devono aggiornare le proprie app dei mittenti di Google Cast per iOS all'SDK Google Cast. Versione 4.6.0 o successiva. Queste versioni forniscono il supporto per iOS 14 e i relativi requisiti.

A partire da iOS 14, le applicazioni che cercano dispositivi sulla rete locale con una finestra di dialogo delle autorizzazioni una tantum, ora chiederà agli utenti di trovare e connettersi a dai dispositivi di rete locali. La piattaforma Cast utilizza la rete locale per rilevare e controllare i dispositivi di trasmissione. Se l'utente nega l'autorizzazione, non potrà trasmettere contenuti.

Per migliorare l'esperienza utente, stiamo apportando alcune modifiche UX all'SDK per le app che usano il selettore dispositivo standard. Queste modifiche all'esperienza utente rendere più ovvio agli utenti il motivo per cui sono necessarie le autorizzazioni di accesso alla rete locale, e su come attivare la trasmissione se l'accesso al dispositivo alla rete locale è stato disattivata.

Le app create con versioni dell'SDK Cast con la versione 4.4.8 o precedenti continueranno a esistere funzionare purché siano costruite con Xcode 11.7 o versioni precedenti. Se per iOS 14 con Xcode 12 o versioni successive, ti consigliamo di eseguire l'aggiornamento SDK 4.6.0 o versioni successive per garantire il corretto funzionamento dell'app Google Cast.

L'SDK Cast per iOS 4.6.0 o versioni successive può essere scaricato con CocoaPods seguendo questo dalla configurazione di CocoaPods oppure manualmente seguendo la configurazione manuale. Questa release include modifiche al meccanismo di rilevamento sottostante per consentire le app che sono con Xcode 12 per trovare i dispositivi di trasmissione sulla rete. Il pulsante Trasmetti dovrebbe ora vengono sempre visualizzati. Se non ci sono dispositivi disponibili quando l'utente tocca Trasmetti viene visualizzata una finestra di dialogo che fornisce indicazioni sul motivo per cui i dispositivi potrebbero non essere disponibile, incluse le informazioni su come riattivare l'accesso alla rete locale autorizzazione.

Modifiche all'SDK Cast

Prima trasmissione

La prima volta che un utente tenta di trasmettere, viene eseguito l'accesso alla rete locale (LNA). apparirà una finestra di dialogo interstitial che spiega perché l'accesso alla rete locale viene necessaria, seguite dalle autorizzazioni di accesso alla rete locale iOS fornite da Apple . Gli esempi riportati di seguito illustrano il flusso:

Flusso delle autorizzazioni di accesso alla rete locale

Trasmissione non disponibile

A partire dall'SDK per mittenti di iOS 4.6.0, il pulsante Trasmetti viene sempre visualizzato quando sia connesso alla rete Wi-Fi. Quando i dispositivi di trasmissione non sono disponibili, Se tocchi il pulsante Trasmetti, viene visualizzata una finestra di dialogo che Suggerimenti sui possibili motivi per cui Google Cast non è disponibile, come mostrato negli esempi che seguono:

Flusso con trasmissione non disponibile

Aggiornamento dell'app su iOS 14

  1. Aggiungere l'SDK Cast iOS 4.8.3 al tuo progetto

    Se usi CocoaPods, usa pod update per aggiungere l'SDK 4.8.3 al tuo progetto.

    Altrimenti, eseguire il pull manuale dell'SDK.

  2. Aggiungi NSBonjourServices a Info.plist

    Specifica NSBonjourServices in Info.plist per consentono il rilevamento della rete locale su iOS 14.

    Dovrai aggiungere sia _googlecast._tcp che _<your-app-id>._googlecast._tcp come servizi per il dispositivo che il rilevamento funzioni correttamente.

    L'appID è il ricevitore ID, ovvero lo stesso ID definito nel GCKDiscoveryCriteria.

    Aggiorna la definizione di NSBonjourServices di esempio seguente e sostituisci "ABCD1234" con il tuo ID app.

    &lt;key&gt;NSBonjourServices&lt;/key&gt;
    &lt;array&gt;
      &lt;string&gt;_googlecast._tcp&lt;/string&gt;
      &lt;string&gt;_ABCD1234._googlecast._tcp&lt;/string&gt;
    &lt;/array&gt;
  3. Aggiungi NSLocalNetworkUsageDescription a Info.plist

    Ti consigliamo vivamente di personalizzare il messaggio mostrato nella Prompt di rete aggiungendo una stringa di autorizzazione specifica per l'app nel Info.plist per NSLocalNetworkUsageDescription, ad esempio per descrivere Cast rilevamento e altri servizi di rilevamento, come DIAL.

    &lt;key&gt;NSLocalNetworkUsageDescription&lt;/key&gt;
    <string>${PRODUCT_NAME} utilizza la rete locale per rilevare i dispositivi compatibili con Google Cast collegati alla rete Wi-Fi.
    rete.</string>

    Questo messaggio verrà visualizzato nella finestra di dialogo Accesso alla rete locale di iOS come mostrato nella simulazione.

    Immagine della finestra di dialogo Trasmetti le autorizzazioni di accesso alla rete locale
  4. Rilasciare di nuovo l'app sull'App Store di Apple

    Ti consigliamo anche di rilasciare nuovamente l'app utilizzando la versione 4.8.3 il prima possibile.

Personalizzazioni

Avvio rilevamento dispositivi di trasmissione

Per impostazione predefinita, il rilevamento del dispositivo di trasmissione viene avviato la prima volta che l'utente tocca il dispositivo. il pulsante Trasmetti (GCKUICastButton). Se è la prima volta che l'utente usa tentativo di utilizzare l'app Cast sulla rete locale dopo l'upgrade a iOS 14, viene visualizzato il nuovo interstitial LNA, seguito dalla riga Finestra di dialogo Autorizzazioni di accesso.

È disponibile un nuovo flag per consentirti di controllare quando inizia il rilevamento dei dispositivi e il comportamento di alcuni elementi della UX:

startDiscoveryAfterFirstTapOnCastButton: BOOL(true/false)

Il valore predefinito è true. Questo flag è applicabile solo se il flag GCKCastOptions::disableDiscoveryAutostart è impostato su false.

Se il criterio è impostato su true, il rilevamento dei dispositivi di trasmissione si avvia quando un utente tocca la GCKUICastButton per la prima volta. Verrà visualizzato un messaggio informativo visualizzata all'utente spiegando perché l'autorizzazione per la rete locale è necessaria. Dopo il messaggio, verrà visualizzato il messaggio LNA per iOS 14. Il rilevamento dei dispositivi di trasmissione inizia dopo la conferma del messaggio.

Nei lanci successivi dell'app, viene sempre visualizzato GCKUICastButton.

Se il criterio viene impostato su false, il rilevamento dei dispositivi inizierà in base al valore dell'attributo segnalare GCKCastOptions::disableDiscoveryAutostart

Domande frequenti

Che cosa succede se rilascerò il mio App mittente con Cast SDK v4.4.8 e Xcode 12?

La tua app potrebbe non riuscire a rilevare i dispositivi di trasmissione sulla rete locale a meno che tu non abbia ottenuto da Apple il diritto di networking multicast. Tieni presente che Apple non concederà diritti multicast esclusivamente per supportare Google Cast. Se prevedi di creare con Xcode 12, devi rilasciare la tua app con Cast 4.6.0.

Se effettuo nuovamente il rilascio della mia app con il nuovo SDK Cast, che i miei utenti che utilizzano iOS 13 o versioni precedenti?

Continuerà a vedere la stessa esperienza utente che aveva prima una nuova release dell'app. Le modifiche visibili agli utenti sono limitate agli utenti iOS 14.

Cosa dovrò fare per aggiornare la mia app quando sarà dell'SDK Cast?

  • Aggiorna Info.plist dell'app per includere una rete locale la descrizione dell'utilizzo.
  • Aggiungi NSBonjourServices all'app Info.plist e specificare i nomi del servizio Bonjour per Cast e l'ID dell'app.
  • Esegui l'upgrade dell'app del mittente per utilizzare l'SDK Cast 4.6.0.
  • Rilascia nuovamente l'app nell'App Store di Apple.

Perché i dispositivi non vengono più visualizzati nel mio dispositivo personalizzato selettore dopo aver eseguito l'upgrade alla versione 4.6.0?

Si tratta di un problema noto che può verificarsi se utilizzi un dispositivo personalizzato anziché quello standard. Nella versione 4.4.8 del SDK Cast e versioni precedenti, la scansione dei dispositivi era automatica. A partire dalla versione 4.6.0, dovrai chiamare esplicitamente startDiscovery nella GCKDiscoveryManager per avviare il rilevamento del dispositivo.

Il motivo di questa modifica è che l'accesso alla rete locale (LNA) la richiesta di autorizzazione verrà visualizzata al termine della prima analisi dell'app nel tempo. Di conseguenza, finestre di dialogo delle autorizzazioni potrebbero essere visualizzate in posizioni casuali. all'interno dell'app.

Gli sviluppatori che creano un selettore dispositivo personalizzato per la propria app dovrebbe fornire un interstitial una tantum prima di avviare il dispositivo scansione per la prima volta in iOS 14.

iOS 13

Con iOS 13, sono stati introdotti nuovi requisiti di autorizzazione che incidono di app utilizzando l'SDK Google Cast.

A partire dalla versione 4.4.3 dell'SDK Google Cast, è disponibile un SDK aggiuntivo che non richiede l'autorizzazione Bluetooth®. Questa funzionalità è disponibile nella piattaforma per sviluppatori sito e nel nuovo google-cast-sdk-no-bluetooth Cocoapodi.

Analisi per app

Di seguito è riportata una suddivisione in base alla versione dell'SDK per iOS attualmente in uso con:

App create con l'SDK per iOS 12 o versioni precedenti

  • Azione consigliata. Il rendimento del rilevamento dei dispositivi può diminuire quando iOS 13, ma che funzionerà. Ti consigliamo vivamente di gli sviluppatori eseguono l'upgrade all'SDK Cast v4.4.4, quando disponibile.
  • iOS 13 richiederà agli utenti di concedere autorizzazioni Bluetooth® all'app.

App create con l'SDK per iOS 13

  • Azione richiesta. Esegui l'aggiornamento all'SDK Cast 4.4.4, altrimenti il pulsante Trasmetti potrebbe non essere vengono visualizzati se l'utente non concede l'autorizzazione di accesso alla posizione. Upgrade all'SDK Cast in corso La versione 4.4.4 è necessaria per garantire un'esperienza di trasmissione affidabile su iOS 13.