A partir do iOS 14, o sistema operacional aplicará novas restrições e permissões que afetam a experiência do usuário do Google Cast. Isso também afetará a forma como você cria o SDK do Cast no seu app. Para que o app mantenha a funcionalidade do Cast com as versões mais recentes do iOS, é necessário fazer atualizações para lidar com essas mudanças nas permissões.
iOS 14
Os desenvolvedores precisam atualizar os apps de transmissão do iOS para o SDK do Google Cast v4.6.0 ou mais recente. Essas versões são compatíveis com o iOS 14 e os requisitos dele.
A partir do iOS 14, os aplicativos que verificam dispositivos na rede local vão solicitar que os usuários, com uma caixa de diálogo de permissões únicas, encontrem e se conectem a dispositivos da rede local. A plataforma do Google Cast usa a rede local para descobrir e controlar dispositivos de transmissão. Portanto, se o usuário negar a permissão, ele não poderá transmitir.
Para melhorar a experiência do usuário, estamos fazendo algumas modificações de UX no SDK para os apps que usam o seletor de dispositivos padrão. Essas modificações na UX tornam mais claro para os usuários por que as permissões de acesso à rede local são necessárias e como ativar a transmissão se o acesso ao dispositivo de rede local estiver desativado.
Os apps criados com a versão 4.4.8 ou anteriores do SDK do Cast vão continuar funcionando, desde que sejam criados com o Xcode 11.7 ou versões anteriores. Se você está criando para iOS 14 com Xcode 12 ou mais recente, recomendamos atualizar para o SDK do Cast para a versão 4.6.0 ou mais recente para garantir que seu app do Google Cast continue funcionando corretamente.
É possível fazer o download do SDK do Cast para iOS v4.6.0 ou mais recente com o CocoaPods seguindo a configuração do CocoaPods ou manualmente, seguindo a configuração manual. Essa versão inclui mudanças no mecanismo de descoberta para permitir que apps criados com o Xcode 12 encontrem dispositivos de transmissão na rede. O botão Transmitir agora sempre será exibido. Se nenhum dispositivo estiver disponível quando o usuário tocar no botão Transmitir, uma caixa de diálogo será mostrada com orientações sobre por que os dispositivos podem não estar disponíveis, incluindo informações sobre como reativar a permissão de acesso à rede local.
Mudanças no SDK do Cast
Primeira transmissão
Na primeira vez que um usuário tentar transmitir, uma caixa de diálogo intersticial de acesso à rede local (LNA, na sigla em inglês) será exibida explicando por que o acesso à rede local é necessário, seguida pela solicitação de permissões de acesso à rede local do iOS fornecida pela Apple. Os modelos abaixo ilustram o fluxo:
Transmissão indisponível
A partir do SDK remetente do iOS 4.6.0, o botão Transmitir sempre aparece quando o usuário está conectado ao Wi-Fi. Quando os dispositivos de transmissão não estão disponíveis, tocar no botão Transmitir abre uma caixa de diálogo que dá ao usuário dicas sobre os possíveis motivos da indisponibilidade da transmissão, conforme mostrado nas simulações abaixo:
Como atualizar seu app no iOS 14
-
Adicionar o SDK do Cast para iOS 4.8.1 ao projeto
Se estiver usando CocoaPods, use
pod update
para adicionar o SDK 4.8.1 ao seu projeto.Caso contrário, extraia o SDK manualmente.
-
Adicione
NSBonjourServices
ao seuInfo.plist
Especifique
NSBonjourServices
noInfo.plist
para que a descoberta de rede local funcione no iOS 14.É necessário adicionar
_googlecast._tcp
e_<your-app-id>._googlecast._tcp
como serviços para que a descoberta de dispositivos funcione corretamente.O appID é o receiverID, que é o mesmo ID definido no
GCKDiscoveryCriteria
.Atualize o exemplo de definição de
NSBonjourServices
a seguir e substitua "ABCD1234" pelo seu appID. -
Adicione
NSLocalNetworkUsageDescription
aInfo.plist
Recomendamos que você personalize a mensagem mostrada na solicitação da rede local adicionando uma string de permissão específica do app ao arquivo
Info.plist
doNSLocalNetworkUsageDescription
, por exemplo, para descrever a descoberta de Cast e outros serviços de descoberta, como DIAL.Essa mensagem vai aparecer como parte da caixa de diálogo "Acesso à rede local" do iOS, como mostrado na simulação.
-
Lançar seu app novamente na App Store da Apple
Recomendamos também lançar novamente o app usando a versão 4.8.1 assim que possível.
Personalizações
Início da descoberta do dispositivo de transmissão
Por padrão, a descoberta do dispositivo de transmissão é iniciada na primeira vez que o usuário toca
no botão Transmitir (GCKUICastButton
). Se esta for a primeira vez que o usuário
tenta usar o app Cast na rede local após fazer upgrade para o iOS
14, o novo intersticial de LNA vai aparecer, seguido pela caixa de diálogo de permissões
de acesso à rede local do iOS.
Uma nova flag está disponível para permitir que você controle quando a descoberta do dispositivo é iniciada e o comportamento de determinados elementos da UX:
startDiscoveryAfterFirstTapOnCastButton: BOOL(true/false)
O valor padrão é true
. Essa sinalização só é aplicável quando GCKCastOptions::disableDiscoveryAutostart
está definida como false
.
Se definida como true
, a descoberta do dispositivo de transmissão começará quando um usuário tocar no
GCKUICastButton
pela primeira vez. Uma mensagem informativa será
exibida ao usuário informando por que a permissão de rede local é
necessária. Depois dessa mensagem, a mensagem LNA do iOS 14 será exibida.
A descoberta do dispositivo de transmissão começa depois que a mensagem é confirmada.
Nas inicializações de app subsequentes, GCKUICastButton
sempre é mostrado.
Se definida como false
, a descoberta de dispositivos será iniciada com base no valor da
flag
GCKCastOptions::disableDiscoveryAutostart
.
Perguntas frequentes
O que acontece se eu lançar novamente meu app de transmissão do Cast com o SDK do Cast v4.4.8 e o Xcode 12?
Talvez seu app não consiga detectar dispositivos de transmissão na rede local, a menos que você tenha recebido um direito de multicast de rede da Apple. A Apple não concederá direitos multicast apenas para oferecer suporte ao Cast. Se você planeja criar com o Xcode 12, lance seu app com o Cast 4.6.0.
Se eu lançar meu app novamente com o novo SDK do Cast, o que meus usuários vão encontrar no iOS 13 ou experiência anterior?
Eles ainda terão a mesma experiência do usuário que tinham antes do relançamento do app. As mudanças visíveis ao usuário são limitadas aos usuários do iOS 14.
O que preciso fazer para atualizar meu app assim que a nova versão do SDK do Cast for lançada?
- Atualize o
Info.plist
do app para incluir uma descrição do uso da rede local. - Adicione
NSBonjourServices
aoInfo.plist
do seu app e forneça os nomes de serviços do Bonjour para o Cast e o ID do app. - Faça upgrade do app remetente para usar o SDK do Cast 4.6.0.
- Lance o app novamente na App Store da Apple.
Por que os dispositivos pararam de aparecer no meu seletor personalizado depois do upgrade para a versão 4.6.0?
Esse é um problema conhecido que pode acontecer se você estiver usando um seletor de dispositivo
personalizado em vez do seletor de dispositivo padrão. Na versão 4.4.8 do
SDK do Cast e versões anteriores, a verificação de dispositivos era automática. A partir da versão
4.6.0, será necessário chamar explicitamente o método startDiscovery
na classe
GCKDiscoveryManager
para iniciar a descoberta de dispositivos.
O motivo dessa mudança é que a solicitação de permissões de acesso à rede local (LNA, na sigla em inglês) será exibida depois que o app fizer a verificação pela primeira vez. Isso pode fazer com que caixas de diálogo de permissões apareçam em lugares aleatórios no app.
Os desenvolvedores que criarem um seletor de dispositivos personalizado para o app precisarão fornecer um intersticial único antes de iniciar a verificação do dispositivo pela primeira vez no iOS 14.
iOS 13
Com o iOS 13, foram introduzidos novos requisitos de permissão que afetam os apps que usam o SDK do Google Cast.
A partir do SDK do Google Cast v4.4.3, está disponível outro SDK que não requer permissão do Bluetooth®. Isso está disponível no site para
desenvolvedores e no novo
Cocoapods google-cast-sdk-no-bluetooth
.
Detalhamento do app
Veja um detalhamento, dependendo da versão do SDK para iOS que você está usando no momento:
Apps criados com o SDK do iOS 12 ou anterior
- Ação recomendada. O desempenho da descoberta de dispositivos pode diminuir quando executado no iOS 13, mas ainda será funcional. É altamente recomendável fazer upgrade para o SDK do Cast v4.4.4 quando disponível.
- O iOS 13 solicitará que os usuários concedam permissões do Bluetooth® ao app.
Apps criados com o SDK do iOS 13
- Ação necessária: a atualização para o SDK do Cast 4.4.4 ou o botão Transmitir pode não aparecer se o usuário não conceder permissão de localização. É necessário fazer upgrade para o SDK do Cast 4.4.4 para garantir uma experiência de transmissão confiável no iOS 13.