A partir do iOS 14, o sistema operacional vai aplicar novas restrições e permissões que afetam a experiência do usuário do Cast. Isso também vai afetar a maneira 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 processar essas mudanças de permissões.
iOS 14
Os desenvolvedores precisam atualizar os apps remetentes do Cast para iOS para o SDK do Google Cast v4.6.0 ou mais recente. Essas versões oferecem suporte ao iOS 14 e aos requisitos dele.
A partir do iOS 14, os aplicativos que procuram dispositivos na rede local vão mostrar aos usuários uma caixa de diálogo de permissões única para encontrar e se conectar a dispositivos de rede local. A plataforma Cast usa a rede local para descobrir e controlar dispositivos Cast. Portanto, se o usuário negar a permissão, não será possível transmitir.
Para melhorar a experiência do usuário, estamos fazendo algumas modificações na UX do SDK para os apps que usam o seletor de dispositivos padrão. Essas modificações tornam mais óbvio para os usuários por que as permissões de acesso à rede local são necessárias, bem como como ativar a transmissão se o acesso ao dispositivo de rede local tiver sido desativado.
Os apps criados com versões do SDK do Cast que usam a v4.4.8 ou anterior vão continuar funcionando desde que sejam criados com o Xcode 11.7 ou anterior. Se você estiver criando para o iOS 14 com o Xcode 12 ou mais recente, recomendamos que atualize para o SDK do Cast v4.6.0 ou mais recente para garantir que o app do Cast continue funcionando corretamente.
O SDK do Cast para iOS v4.6.0 ou mais recente pode ser baixado 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 subjacente para permitir que apps criados com o Xcode 12 encontrem dispositivos Cast na rede. O botão "Transmitir" agora sempre aparece. Se nenhum dispositivo estiver disponível quando o usuário tocar no botão "Transmitir", uma caixa de diálogo será exibida 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) vai aparecer explicando por que o acesso à rede local é necessário, seguida do prompt de permissões de acesso à rede local do iOS fornecido pela Apple. As simulações abaixo ilustram o fluxo:

Cast indisponível
A partir do SDK do remetente do iOS 4.6.0, o botão "Transmitir" sempre aparece quando o usuário está conectado ao Wi-Fi. Quando os dispositivos Cast não estão disponíveis, tocar no botão "Transmitir" abre uma caixa de diálogo que dá ao usuário dicas sobre possíveis motivos para a indisponibilidade do Cast, conforme mostrado nas simulações abaixo:

Atualizar o app no iOS 14
-
Adicionar o SDK do Cast para iOS 4.8.4 ao seu projeto
Se você estiver usando o CocoaPods, use
pod updatepara adicionar o SDK 4.8.4 ao seu projeto.Caso contrário, extraia o SDK manualmente.
-
Adicionar
NSBonjourServicesao seuInfo.plistEspecifique
NSBonjourServicesno seuInfo.plistpara permitir que a descoberta de rede local seja bem-sucedida no iOS 14.Você precisará adicionar
_googlecast._tcpe_<your-app-id>._googlecast._tcpcomo serviços para que a descoberta de dispositivos funcione corretamente.O appID é seu receiverID, que é o mesmo ID definido no seu
GCKDiscoveryCriteria.Atualize o exemplo de definição
NSBonjourServicesa seguir e substitua "ABCD1234" pelo seu appID. -
Adicionar
NSLocalNetworkUsageDescriptionao seuInfo.plistRecomendamos que você personalize a mensagem mostrada no prompt de rede local adicionando uma string de permissão específica do app no arquivo do app
Info.plistparaNSLocalNetworkUsageDescriptioncomo para descrever a descoberta do Cast e outros serviços de descoberta, como o DIAL.Essa mensagem vai aparecer como parte da caixa de diálogo de acesso à rede local do iOS, conforme mostrado na simulação.
-
Relançar o app na App Store da Apple
Recomendamos que você também relance o app usando a versão 4.8.4 o mais rápido possível.
Personalizações
Início da descoberta de dispositivos de transmissão
Por padrão, a descoberta de dispositivos de transmissão é iniciada na primeira vez que o usuário toca no botão Transmitir (GCKUICastButton). Se essa 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 da caixa de diálogo de permissões de acesso à rede local do iOS.
Um novo flag está disponível para permitir que você controle quando a descoberta de dispositivos começa e o comportamento de determinados elementos da UX:
startDiscoveryAfterFirstTapOnCastButton: BOOL(true/false)
O valor padrão é true. Esse flag só é aplicável quando o flag
GCKCastOptions::disableDiscoveryAutostart
está definido como false.
Se definido como true, a descoberta de dispositivos de transmissão será iniciada quando um usuário tocar no GCKUICastButton pela primeira vez. Uma mensagem informativa será mostrada ao usuário informando por que a permissão de rede local é necessária. Após essa mensagem, a mensagem LNA do iOS 14 será mostrada.
A descoberta de dispositivos de transmissão começa depois que a mensagem é reconhecida.
Em lançamentos de apps subsequentes, GCKUICastButton sempre aparece.
Se definido como false, a descoberta de dispositivos será iniciada com base no valor do
flag
GCKCastOptions::disableDiscoveryAutostart.
Perguntas frequentes
O que acontece se eu relançar meu app remetente do Cast com o SDK do Cast v4.4.8 e o Xcode 12?
Seu app talvez não consiga descobrir dispositivos Cast na rede local a menos que você tenha recebido um direito de multicast de rede da Apple. A Apple não vai conceder direitos de 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 relançar meu app com o novo SDK do Cast, qual será a experiência dos usuários que executam o iOS 13 ou versões anteriores?
Eles vão continuar tendo a mesma experiência do usuário que tinham antes do relançamento do app. As mudanças visíveis para o usuário são limitadas aos usuários que executam o iOS 14.
O que preciso fazer para atualizar meu app quando a nova versão do SDK do Cast for lançada?
- Atualize o
Info.plistdo app para incluir uma descrição de uso da rede local. - Adicione
NSBonjourServicesaoInfo.plistdo app e forneça os nomes de serviço Bonjour para o Cast e o ID do app. - Faça upgrade do app remetente para usar o SDK do Cast 4.6.0.
- Relance o app na App Store da Apple.
Por que os dispositivos pararam de aparecer no meu seletor de dispositivos personalizado depois que fiz upgrade para a versão 4.6.0?
Esse é um problema conhecido que pode acontecer se você estiver usando um seletor de dispositivos personalizado
em vez do seletor de dispositivos padrão. Na versão 4.4.8 do
SDK do Cast e anteriores, a verificação de dispositivos era automática. A partir da versão
4.6.0, será necessário chamar explicitamente o startDiscovery
método na
GCKDiscoveryManager classe para iniciar a descoberta de dispositivos.
O motivo dessa mudança é que o prompt de permissões de acesso à rede local (LNA) vai aparecer depois que o app for verificado pela primeira vez. Isso pode resultar em caixas de diálogo de permissões aparecendo em lugares aleatórios no seu app.
Os desenvolvedores que criam um seletor de dispositivos personalizado para o app precisam fornecer um intersticial único antes de iniciar a verificação de dispositivos pela primeira vez no iOS 14.
iOS 13
Com o iOS 13, novos requisitos de permissões foram introduzidos, o que afeta os apps que usam o SDK do Google Cast.
A partir do SDK do Google Cast v4.4.3, um SDK adicional está disponível e não requer permissão do Bluetooth®. Ele está disponível no site
do desenvolvedor e nos novos
google-cast-sdk-no-bluetooth Cocoapods.
Detalhamento do aplicativo
Confira um detalhamento dependendo da versão do SDK do iOS que você está usando:
Apps criados com o SDK do iOS 12 ou anterior
- Ação recomendada. O desempenho da descoberta de dispositivos pode diminuir ao executar no iOS 13, mas ainda será funcional. Recomendamos que os desenvolvedores façam upgrade para o SDK do Cast v4.4.4 quando disponível.
- O iOS 13 vai pedir aos usuários que concedam permissões do Bluetooth® ao app.
Apps criados com o SDK do iOS 13
- Ação necessária: atualize para o SDK do Cast 4.4.4 ou o botão Transmitir poderá 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.