A partire da iOS 14, il sistema operativo applicherà nuove restrizioni e autorizzazioni che interessano l'esperienza utente di Cast. oltre che sulla modalità di creazione dell'SDK Cast nell'app. Affinché la tua app mantenga la funzionalità Cast con le versioni più recenti di iOS, devi apportare aggiornamenti per gestire queste modifiche alle autorizzazioni.
iOS 14
Gli sviluppatori dovrebbero aggiornare le proprie app mittente per iOS Cast all'SDK Google Cast versione 4.6.0 o successiva. Queste versioni supportano iOS 14 e i relativi requisiti.
A partire da iOS 14, le applicazioni che cercano i dispositivi sulla rete locale ora chiederanno agli utenti, con una finestra di dialogo delle autorizzazioni una tantum, di trovare e connettersi ai dispositivi di rete locali. La piattaforma Google Cast utilizza la rete locale per rilevare e controllare i dispositivi di trasmissione. Pertanto, se l'utente nega l'autorizzazione, non potrà trasmettere.
Per migliorare l'esperienza utente, stiamo apportando alcune modifiche all'esperienza utente all'SDK per le app che utilizzano il selettore di dispositivi standard. Queste modifiche all'UX rendono più chiaro per gli utenti perché sono necessarie le autorizzazioni di accesso alla rete locale e come abilitare la trasmissione se l'accesso ai dispositivi della rete locale è stato disabilitato.
Le app create con versioni dell'SDK Cast che utilizzano la versione 4.4.8 o precedente continueranno a funzionare, purché siano state create con Xcode 11.7 o versioni precedenti. Se stai creando per iOS 14 con Xcode 12 o versioni successive, ti consigliamo di eseguire l'aggiornamento alla versione 4.6.0 o successiva dell'SDK Cast per assicurarti che l'app Cast continui a funzionare correttamente.
L'SDK Cast per iOS v4.6.0 o versioni successive può essere scaricato con CocoaPods seguendo la configurazione di CocoaPods o manualmente seguendo la configurazione manuale. Questa release include modifiche al meccanismo di rilevamento sottostante per consentire alle app create con Xcode 12 di trovare i dispositivi di trasmissione sulla rete. Ora il pulsante Trasmetti dovrebbe essere sempre visualizzato. Se non sono disponibili dispositivi quando l'utente tocca il pulsante Trasmetti, viene visualizzata una finestra di dialogo che fornisce indicazioni sul motivo per cui i dispositivi potrebbero non essere disponibili, incluse informazioni su come riattivare l'autorizzazione di accesso alla rete locale.
Modifiche all'SDK Cast
Prima trasmissione
La prima volta che un utente tenta di trasmettere, viene visualizzata una finestra di dialogo interstitial di accesso alla rete locale (LNA) che spiega perché è necessario l'accesso alla rete locale, seguita dalla richiesta di autorizzazione di accesso alla rete locale iOS fornita da Apple. Le simulazioni riportate di seguito illustrano il flusso:
Trasmissione non disponibile
A partire dall'SDK per mittenti di iOS 4.6.0, il pulsante Trasmetti viene sempre visualizzato quando l'utente è connesso a una rete Wi-Fi. Quando i dispositivi di trasmissione non sono disponibili, se tocchi il pulsante Trasmetti, viene visualizzata una finestra di dialogo che suggerisce all'utente i possibili motivi per cui la trasmissione non è disponibile, come mostrato nelle simulazioni che seguono:
Aggiornamento dell'app su iOS 14
-
Aggiungi l'SDK Cast per iOS 4.8.1 al tuo progetto
Se usi CocoaPods, usa
pod update
per aggiungere l'SDK 4.8.1 al tuo progetto.In caso contrario, esegui il pull dell'SDK manualmente.
-
Aggiungi
NSBonjourServices
aInfo.plist
Specifica
NSBonjourServices
inInfo.plist
per consentire il rilevamento tramite la rete locale su iOS 14.Dovrai aggiungere sia
_googlecast._tcp
che_<your-app-id>._googlecast._tcp
come servizi per far funzionare correttamente il rilevamento dei dispositivi.L'appID è il tuo ID ricevitore, che è lo stesso ID definito in
GCKDiscoveryCriteria
.Aggiorna la definizione
NSBonjourServices
dell'esempio seguente e sostituisci "ABCD1234" con il tuo appID. -
Aggiungi
NSLocalNetworkUsageDescription
aInfo.plist
Ti consigliamo vivamente di personalizzare il messaggio visualizzato nel prompt della rete locale aggiungendo una stringa di autorizzazione specifica dell'app nel file
Info.plist
dell'app perNSLocalNetworkUsageDescription
, ad esempio per descrivere il rilevamento di Cast e altri servizi di rilevamento, come DIAL.Questo messaggio verrà visualizzato all'interno della finestra di dialogo Accesso alla rete locale di iOS, come mostrato nella simulazione.
-
Rilascia di nuovo l'app nell'App Store di Apple
Ti consigliamo di rilasciare nuovamente l'app utilizzando la versione 4.8.1 il prima possibile.
Personalizzazioni
Avvio del rilevamento del dispositivo di trasmissione
Per impostazione predefinita, il rilevamento del dispositivo di trasmissione viene avviato la prima volta che l'utente tocca il pulsante Trasmetti (GCKUICastButton
). Se è la prima volta che l'utente tenta di utilizzare l'app Cast sulla rete locale dopo aver eseguito l'upgrade a iOS 14, viene visualizzata la nuova interstitial LNA, seguita dalla finestra di dialogo delle autorizzazioni Accesso alla rete locale di iOS.
È disponibile un nuovo flag per consentirti di controllare quando inizia il rilevamento dei dispositivi e il comportamento di alcuni elementi dell'esperienza utente:
startDiscoveryAfterFirstTapOnCastButton: BOOL(true/false)
Il valore predefinito è true
. Questo flag è applicabile solo quando il flag GCKCastOptions::disableDiscoveryAutostart
è impostato su false
.
Se il criterio viene impostato su true
, il rilevamento dei dispositivi di trasmissione inizia quando un utente tocca il GCKUICastButton
per la prima volta. Verrà mostrato un messaggio informativo all'utente che comunica perché è necessaria l'autorizzazione di rete locale. Dopo questo messaggio, verrà visualizzato il messaggio LNA di iOS 14.
Il rilevamento del dispositivo di trasmissione inizia dopo la conferma del messaggio.
Nei successivi lanci dell'app, verrà sempre visualizzato GCKUICastButton
.
Se è impostato su false
, il rilevamento dei dispositivi inizierà in base al valore del
flag
GCKCastOptions::disableDiscoveryAutostart
.
Domande frequenti.
Che cosa succede se rilascio la mia app mittente di Cast con l'SDK Cast 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 un diritto di rete multicast da Apple. Tieni presente che Apple non concederà diritti multicast esclusivamente per supportare Cast. Se prevedi di creare con Xcode 12, devi rilasciare la tua app con Cast 4.6.0.
Se rilascio la mia app con il nuovo SDK Cast, quale sarà l'esperienza degli utenti che utilizzano iOS 13 o versioni precedenti?
Continueranno a usufruire della stessa esperienza utente che avevano prima del rilascio dell'app. Le modifiche visibili agli utenti sono limitate agli utenti che utilizzano iOS 14.
Che cosa devo fare per aggiornare la mia app dopo il rilascio della nuova versione dell'SDK Cast?
- Aggiorna
Info.plist
dell'app in modo da includere una descrizione dell'utilizzo della rete locale. - Aggiungi
NSBonjourServices
aInfo.plist
della tua app e fornisci i nomi dei servizi Bonjour per Cast e il tuo ID app. - Esegui l'upgrade dell'app del mittente per utilizzare l'SDK Cast 4.6.0.
- Rilascia di nuovo l'app nell'App Store di Apple.
Perché i dispositivi non appaiono più nel mio selettore di dispositivi personalizzato dopo che ho eseguito l'upgrade alla versione 4.6.0?
Questo è un problema noto che può verificarsi se utilizzi un selettore di dispositivi personalizzato anziché un selettore di dispositivi standard. Nella versione 4.4.8 dell'SDK Cast e precedenti, l'analisi dei dispositivi era automatica. A partire dalla versione 4.6.0, dovrai chiamare esplicitamente il metodo startDiscovery
nella classe
GCKDiscoveryManager
per avviare il rilevamento dei dispositivi.
Il motivo di questa modifica è che la richiesta relativa alle autorizzazioni di accesso alla rete locale (LNA) verrà visualizzata dopo la prima analisi dell'app. Di conseguenza, nella tua app potrebbero essere visualizzate finestre di dialogo delle autorizzazioni in punti casuali.
Gli sviluppatori che creano un selettore di dispositivi personalizzato per la loro app devono fornire un interstitial una tantum prima di avviare la scansione dei dispositivi per la prima volta in iOS 14.
iOS 13
Con iOS 13, sono stati introdotti nuovi requisiti relativi alle autorizzazioni che influiscono sulle app che utilizzano l'SDK Google Cast.
A partire dalla versione 4.4.3 dell'SDK Google Cast v4.4.3, è disponibile un SDK aggiuntivo che non richiede l'autorizzazione Bluetooth®. Questa funzionalità è disponibile sia sul sito per sviluppatori sia sul nuovo google-cast-sdk-no-bluetooth
Cocoapods.
Analisi dettagliata dell'app
Ecco una suddivisione in base alla versione dell'SDK per iOS in uso:
App create con l'SDK per iOS 12 o versioni precedenti
- Azione consigliata. Le prestazioni di rilevamento dei dispositivi potrebbero diminuire su iOS 13, ma saranno comunque funzionanti. Consigliamo vivamente agli sviluppatori di eseguire l'upgrade all'SDK Cast v4.4.4, se disponibile.
- iOS 13 richiederà agli utenti di concedere le autorizzazioni Bluetooth® all'app.
App create con l'SDK per iOS 13
- Azione richiesta: esegui l'aggiornamento a Cast SDK 4.4.4 o il pulsante Trasmetti potrebbe non essere visualizzato se l'utente non concede l'autorizzazione di accesso alla posizione. È necessario eseguire l'upgrade all'SDK Cast 4.4.4 per garantire un'esperienza di trasmissione affidabile su iOS 13.