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 forma como você cria o SDK do Cast no seu app. Para que ele mantenha a funcionalidade do Cast com as versões mais recentes do iOS, é necessário fazer atualizações para lidar com essas mudanças de permissões.
iOS 14
Os desenvolvedores precisam atualizar os apps remetentes do iOS Cast 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 agora vão mostrar aos usuários uma caixa de diálogo de permissões únicas para encontrar e se conectar a dispositivos da 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 apps que usam o seletor de dispositivos padrão. Essas modificações na UX deixam mais claro para os usuários por que as permissões de acesso à rede local são necessárias, além de 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 usando 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 iOS 14 com Xcode 12 ou mais recente, recomendamos que atualize para o SDK do Cast v4.6.0 ou mais recente para garantir que seu app 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. Esta versão inclui mudanças no mecanismo de descoberta para permitir que apps criados com o Xcode 12 encontrem dispositivos Cast na rede. O botão Transmitir agora vai aparecer sempre. Se nenhum dispositivo estiver disponível quando o usuário tocar no botão Transmitir, uma caixa de diálogo vai aparecer 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) vai aparecer explicando por que o acesso à rede local é necessário, seguida da solicitação de permissões de acesso à rede local do iOS fornecida pela Apple. Os simulacros abaixo ilustram o fluxo:
O Cast não está disponível
A partir do SDK remetente do iOS 4.6.0, o botão do Cast 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 possíveis motivos para a indisponibilidade, como mostrado nas simulações abaixo:
Atualizar seu app no iOS 14
-
Adicione o SDK do Cast para iOS 4.8.3 ao seu projeto
Se você estiver usando o CocoaPods, use
pod update
para adicionar o SDK 4.8.3 ao seu projeto.Caso contrário, extraia o SDK manualmente.
-
Adicionar
NSBonjourServices
ao seuInfo.plist
Especifique
NSBonjourServices
no seuInfo.plist
para permitir que a descoberta de rede local seja concluída no iOS 14.Você precisa adicionar
_googlecast._tcp
e_<your-app-id>._googlecast._tcp
como serviços para que a descoberta de dispositivos funcione corretamente.O appID é seu receiverID, que é o mesmo ID definido no
GCKDiscoveryCriteria
.Atualize a definição de exemplo
NSBonjourServices
e substitua "ABCD1234" pelo seu appID. -
Adicionar
NSLocalNetworkUsageDescription
ao seuInfo.plist
Recomendamos que você personalize a mensagem mostrada na solicitação de rede local adicionando uma string de permissão específica do app no arquivo
Info.plist
do app para oNSLocalNetworkUsageDescription
, como 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 Apple App Store
Recomendamos que você relance o app usando a versão 4.8.3 o mais rápido possível.
Personalizações
Início da descoberta de dispositivos com Cast
Por padrão, a descoberta de dispositivos Cast é iniciada quando o usuário toca no botão Cast (GCKUICastButton
) pela primeira vez. Se esta for a primeira vez que o usuário tenta usar o app Cast na rede local depois de 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 de dispositivos começa e o comportamento de determinados elementos da UX:
startDiscoveryAfterFirstTapOnCastButton: BOOL(true/false)
O valor padrão é true
. Essa flag só é aplicável quando a flag
GCKCastOptions::disableDiscoveryAutostart
está definida como false
.
Se definido como true
, a descoberta de dispositivos com Cast será iniciada quando um usuário tocar no
GCKUICastButton
pela primeira vez. Uma mensagem informativa será
mostrada ao usuário para informar por que a permissão de rede local é
necessária. Depois dessa mensagem, a mensagem LNA do iOS 14 será exibida.
A descoberta de dispositivos de transmissão começa depois que a mensagem é confirmada.
Nos próximos lançamentos do app, GCKUICastButton
sempre vai aparecer.
Se definido como false
, a descoberta de dispositivos vai começar com base no valor da 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 não poderá 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 usam o iOS 13 ou versões anteriores?
A experiência do usuário vai continuar a mesma que ele tinha antes do relançamento do app. As mudanças visíveis para o usuário são limitadas a quem usa 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.plist
do app para incluir uma descrição do uso da rede local. - Adicione
NSBonjourServices
aoInfo.plist
do 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 seu app na App Store da Apple.
Por que os dispositivos pararam de aparecer no 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 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, você precisará chamar explicitamente o método startDiscovery
na classe
GCKDiscoveryManager
para iniciar a descoberta de dispositivos.
Isso acontece porque a solicitação de permissões de acesso à rede local (LNA) aparece depois que o app faz a primeira verificação. Isso pode resultar em caixas de diálogo de permissões aparecendo em lugares aleatórios no seu app.
Os desenvolvedores que criarem um seletor de dispositivos personalizado para o app precisarão fornecer um anúncio intersticial único antes de iniciar a verificação de dispositivos pela primeira vez no iOS 14.
iOS 13
Com o iOS 13, foram introduzidos novos requisitos de permissões que afetam 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 exige permissão do Bluetooth®. Isso está disponível no site para desenvolvedores e no novo google-cast-sdk-no-bluetooth
Cocoapods.
Detalhamento do app
Confira uma análise detalhada dependendo da versão do SDK do iOS que você está usando:
Apps criados com o SDK do iOS 12 ou versões anteriores
- Ação recomendada. O desempenho da descoberta de dispositivos pode diminuir ao ser executado no iOS 13, mas ainda vai funcionar. Recomendamos que os desenvolvedores façam upgrade para o SDK do Cast v4.4.4 quando ele estiver disponível.
- O iOS 13 vai pedir que os usuários concedam permissões de 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 de transmissão poderá não aparecer se o usuário não conceder permissão de local. É 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.