A partire da iOS 14, il sistema operativo applicherà nuove limitazioni e autorizzazioni che influiscono sull'esperienza utente di Cast. Influisce anche sul modo in cui incorpori l'SDK Cast nella tua app. Affinché la tua app mantenga la funzionalità di trasmissione con le versioni più recenti di iOS, devi eseguire aggiornamenti per gestire queste modifiche alle autorizzazioni.
iOS 14
Gli sviluppatori devono aggiornare le app di trasmissione di Google Cast per iOS all'SDK Google Cast v4.6.0 o successive. 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 ora chiederanno agli utenti di confermare una volta sola l'autorizzazione a trovare e connettersi ai dispositivi della rete locale. La piattaforma Cast utilizza la rete locale per rilevare e controllare i dispositivi Cast, quindi se l'utente nega l'autorizzazione, non potrà trasmettere.
Per migliorare l'esperienza utente, stiamo apportando alcune modifiche all'SDK per l'UX per le app che utilizzano il selettore di dispositivi standard. Queste modifiche all'esperienza utente spiegano meglio agli utenti perché sono necessarie le autorizzazioni di accesso alla rete locale, nonché come attivare 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 precedenti continueranno a funzionare se sono create con Xcode 11.7 o versioni precedenti. Se stai compilando per iOS 14 con Xcode 12 o versioni successive, ti consigliamo di eseguire l'aggiornamento all'SDK Cast 4.6.0 o versioni successive per assicurarti che la tua app di trasmissione continui a funzionare correttamente.
L'SDK Cast per iOS 4.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 compilate con Xcode 12 di trovare i dispositivi Cast 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 con 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 di iOS fornita da Apple. I mock riportati di seguito illustrano il flusso:
Trasmissione non disponibile
A partire dall'SDK per i mittenti per iOS 4.6.0, il pulsante Trasmetti viene visualizzato sempre quando l'utente è connesso al Wi-Fi. Quando i dispositivi di trasmissione non sono disponibili, se tocchi il pulsante Trasmetti viene visualizzata una finestra di dialogo che fornisce all'utente alcuni suggerimenti sui possibili motivi per cui la trasmissione non è disponibile, come mostrato nei mock di seguito:
Aggiornare l'app su iOS 14
-
Aggiungi l'SDK iOS per la trasmissione 4.8.3 al tuo progetto
Se utilizzi CocoaPods, usa
pod update
per aggiungere l'SDK 4.8.3 al tuo progetto.In caso contrario, importa l'SDK manualmente.
-
Aggiungi
NSBonjourServices
aInfo.plist
Specifica
NSBonjourServices
inInfo.plist
per consentire il rilevamento della rete locale su iOS 14.Dovrai aggiungere sia
_googlecast._tcp
sia_<your-app-id>._googlecast._tcp
come servizi per il rilevamento dei dispositivi affinché funzioni correttamente.L'appID è il tuo receiverID, ovvero lo stesso ID definito in
GCKDiscoveryCriteria
.Aggiorna la seguente definizione di
NSBonjourServices
di esempio e sostituisci "ABCD1234" con il tuo appID. -
Aggiungi
NSLocalNetworkUsageDescription
al tuoInfo.plist
Ti consigliamo vivamente di personalizzare il messaggio visualizzato nella richiesta della rete locale aggiungendo una stringa di autorizzazione specifica per l'app nel file
Info.plist
dell'app perNSLocalNetworkUsageDescription
, ad esempio per descrivere la scoperta di Cast e altri servizi di scoperta, come DIAL.Questo messaggio verrà visualizzato nella finestra di dialogo Accesso alla rete locale di iOS come mostrato nel mock.
-
Rilasciare di nuovo l'app nell'App Store di Apple
Ti consigliamo inoltre di rilasciare di nuovo l'app utilizzando la versione 4.8.3 il prima possibile.
Personalizzazioni
Avvio del rilevamento di dispositivi di trasmissione
Per impostazione predefinita, il rilevamento dei dispositivi 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 Trasmetti sulla rete locale dopo l'upgrade a iOS 14, viene visualizzato il nuovo interstitial LNA, seguito dalla finestra di dialogo delle autorizzazioni di accesso alla rete locale di iOS.
È disponibile un nuovo flag che ti consente di controllare quando inizia il rilevamento dei dispositivi e il comportamento di determinati 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 impostato su true
, il rilevamento di dispositivi di trasmissione si avvia quando un utente tocca GCKUICastButton
per la prima volta. All'utente verrà mostrato un messaggio informativo che lo informerà del motivo per cui è necessaria l'autorizzazione di rete locale. Dopo questo messaggio, verrà visualizzato il messaggio LNA per iOS 14.
La ricerca dei dispositivi di trasmissione inizia dopo la conferma del messaggio.
Nei lanci successivi dell'app viene sempre visualizzato GCKUICastButton
.
Se impostato su false
, la ricerca dei dispositivi inizierà in base al valore del
contrassegno
GCKCastOptions::disableDiscoveryAutostart
.
Domande frequenti
Che cosa succede se re-rilancio la mia app di trasmissione di Cast con l'SDK Cast 4.4.8 e Xcode 12?
L'app potrebbe non essere in grado di rilevare i dispositivi di trasmissione sulla rete locale a meno che tu non abbia ottenuto un diritto di multicast di rete da Apple. Tieni presente che Apple non concederà i diritti di multicast esclusivamente ai fini del supporto di Cast. Se prevedi di eseguire la compilazione con Xcode 12, devi rilasciare la tua app con Cast 4.6.0.
Se rilascio di nuovo la mia app con il nuovo SDK Cast, che cosa faranno i miei utenti che utilizzano iOS 13 o versioni precedenti?
Continueranno a vedere la stessa esperienza utente che avevano prima della nuova release della tua app. Le modifiche visibili agli utenti sono limitate agli utenti che utilizzano iOS 14.
Che cosa dovrò fare per aggiornare la mia app una volta rilasciata la nuova versione dell'SDK Cast?
- Aggiorna
Info.plist
dell'app in modo da includere una descrizione dell'utilizzo della rete locale. - Aggiungi
NSBonjourServices
alInfo.plist
della tua app e fornisci i nomi dei servizi Bonjour per Cast e il tuo ID app. - Esegui l'upgrade dell'app mittente per utilizzare l'SDK Cast 4.6.0.
- Rilascia di nuovo l'app nell'App Store Apple.
Perché i dispositivi non vengono più visualizzati nel selettore di dispositivi personalizzato dopo l'upgrade alla versione 4.6.0?
Si tratta di un problema noto che può verificarsi se utilizzi un selettore di dispositivi personalizzato anziché quello standard. Nella versione 4.4.8 dell'SDK Cast e nelle versioni precedenti, la ricerca 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 di autorizzazioni per l'accesso alla rete locale (LNA) verrà visualizzata dopo la prima scansione dell'app. Ciò potrebbe comportare la visualizzazione di finestre di dialogo di autorizzazione in punti random della tua app.
Gli sviluppatori che creano un selettore di dispositivi personalizzato per la propria app dovranno fornire un popup una tantum prima di avviare la scansione del dispositivo per la prima volta in iOS 14.
iOS 13
Con iOS 13 sono stati introdotti nuovi requisiti di autorizzazione che influiscono sulle app che utilizzano 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®. È disponibile sia sul sito per sviluppatori sia sul nuovo google-cast-sdk-no-bluetooth
Cocoapods.
Suddivisione per app
Ecco una suddivisione in base alla versione dell'SDK iOS attualmente in uso:
App create con l'SDK iOS 12 o versioni precedenti
- Azione consigliata. Il rendimento della rilevazione dei dispositivi potrebbe diminuire se eseguito su iOS 13, ma rimarrà comunque funzionale. Consigliamo vivamente agli sviluppatori di eseguire l'upgrade all'SDK Cast 4.4.4, se disponibile.
- iOS 13 chiederà agli utenti di concedere le autorizzazioni Bluetooth® all'app.
App create con l'SDK iOS 13
- Azione richiesta: esegui l'aggiornamento all'SDK Cast 4.4.4 o il pulsante di trasmissione potrebbe non essere visualizzato se l'utente non concede l'autorizzazione di accesso alla posizione. L'upgrade all'SDK Cast 4.4.4 è necessario per garantire un'esperienza di trasmissione affidabile su iOS 13.