Configuração para desenvolver com o framework de aplicativo do Google Cast (CAF, na sigla em inglês) para iOS

O framework do Google Cast oferece suporte ao iOS 13 e versões mais recentes e vem em frameworks estáticos e dinâmicos.

Consulte a Referência da API Google Cast para iOS e veja descrições de todas as classes e métodos.

Configuração do Xcode

iOS 14

  1. Adicionar o SDK do Cast para iOS 4.8.0 ao seu projeto

    Se estiver usando CocoaPods, use pod update para adicionar o SDK 4.8.0 ao seu projeto.

    Caso contrário, extraia o SDK manualmente.

  2. Adicionar NSBonjourServices à Info.plist

    Especifique NSBonjourServices no Info.plist para permitir que a descoberta da rede local seja bem-sucedida no iOS 14.

    Você precisará 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 o exemplo de definição de NSBonjourServices a seguir e substitua "ABCD1234" pelo seu ID do app.

    <key>NSBonjourServices</key>
    <array>
      <string>_googlecast._tcp</string>
      <string>_ABCD1234._googlecast._tcp</string>
    </array>
  3. Add NSLocalNetworkUsageDescription to your Info.plist

    We strongly recommend that you customize the message shown in the Local Network prompt by adding an app-specific permission string in your app's Info.plist file for the NSLocalNetworkUsageDescription such as to describe Cast discovery and other discovery services, like DIAL.

    <key>NSLocalNetworkUsageDescription</key>
    <string>${PRODUCT_NAME} uses the local network to discover Cast-enabled devices on your WiFi
    network.</string>

    This message will appear as part of the iOS Local Network Access dialog as shown in the mock.

    Cast Local Network Access permissions dialog image
  4. Re-release your app to the Apple App Store

    We recommend you also re-release your app using 4.8.0 as soon as possible.

iOS 13

iOS 12

Ensure that the Access WiFi Information switch in the Capabilities section of the target is set to "On".

Additionally, your provisioning profile will need to support the Access WiFi Information capability. This can be added in the Apple Developer Portal.

CocoaPods setup

The recommended way of integrating Google Cast is using CocoaPods. CocoaPods is supported for both the Universal Framework and XCFramework.

For a Universal Framework integration, use the google-cast-sdk and google-cast-sdk-no-bluetooth CocoaPods.

For an XCFramework integration, use the google-cast-sdk-xcframework and google-cast-sdk-no-bluetooth-xcframework CocoaPods.

To get started, follow the getting started guide.

Once CocoaPods is set up, follow the using CocoaPods guide to get your Podfile created and your project ready to use with the Google Cast SDK.

Here's an example of how to add the google-cast-sdk CocoaPod to your Podfile:

use_frameworks!

platform :ios, '13.0'

def target_pods
  pod 'google-cast-sdk'
end

target 'CastVideos-objc' do
  target_pods
end
target 'CastVideos-swift' do
  target_pods
end

Veja um exemplo de como adicionar o CocoaPod google-cast-sdk-no-bluetooth ao Podfile:

use_frameworks!

platform :ios, '13.0'

def target_pods
  pod 'google-cast-sdk-no-bluetooth'
end

target 'CastVideos-objc' do
  target_pods
end
target 'CastVideos-swift' do
  target_pods
end

Para o projeto, especifique um intervalo para os pods para evitar alterações interruptivas inesperadas, conforme detalhado no guia do podfile.

Neste snippet, a versão 4.8.0 e as versões até a próxima versão principal (major.minor.patch) são permitidas:

pod 'google-cast-sdk', '~> 4.8.0'

Por exemplo, "~> 1.6.7" incluiria todas as versões a partir da 1.6.7 até a versão 2.0.0.

Configuração manual

As instruções a seguir mostram como adicionar o SDK do Cast para iOS ao seu projeto sem usar o CocoaPods:

Downloads

Depois de fazer o download da biblioteca apropriada abaixo, siga as etapas de configuração para adicionar a biblioteca ao seu projeto. Os requisitos de configuração são os mesmos para o XCFrameworks e o Universal Frameworks legado.

Estrutura universal

Bibliotecas do SDK do remetente do iOS do Cast 4.8.0:

Estático com Bluetooth Estático sem Bluetooth

Dinâmico com Bluetooth Dinâmico sem Bluetooth

XCFramework

O SDK do Cast para iOS oferece suporte a XCFrameworks, permitindo o desenvolvimento em computadores Mac com Apple Silicon, além da depuração usando o simulador de iOS.

Bibliotecas XCFramework 4.8.0 do SDK do remetente do iOS do Google Cast:

XCFramework estático com Bluetooth XCFramework estático sem Bluetooth

XCFramework dinâmico com Bluetooth XCFramework dinâmico sem Bluetooth

Etapas da configuração

Para instalar uma das bibliotecas estáticas:

  1. Faça o download e descompacte o SDK estático adequado para seu projeto.
  2. Configure a biblioteca Protobuf com a versão mínima v3.13.
    1. Se o projeto usa CocoaPods, faça o seguinte:
      1. Abra o Podfile e remova o google-cast-sdk, se houver:
        pod 'google-cast-sdk'
      2. Adicione a biblioteca Protobuf, se ela não estiver presente:
        pod 'Protobuf', '3.13'
      3. Execute pod install na pasta raiz do projeto.
    2. Se o projeto não estiver usando CocoaPods:
      1. Remova a versão atual de GoogleCastSDK, se houver.
      2. Adicione a biblioteca Protobuf v3.13 ou posterior, seguindo as instruções encontradas no repositório do Protobuf no GitHub (em inglês).
  3. Arraste o .framework ou .xcframework descompactado para seu projeto principal no navegador de projetos do Xcode (e não para o projeto de pods, se você tiver um). Marque "Copiar todos os itens, se necessário" e adicione a todos os destinos.
  4. No seu projeto do Xcode, adicione as sinalizações -ObjC -lc++ a Build Settings > Other Linker Flags.
  5. Clique com o botão direito do mouse em GoogleCast.framework ou GoogleCast.xcframework no projeto e selecione "Show In Finder".
  6. Arraste GoogleCastCoreResources.bundle e GoogleCastUIResources.bundle para o projeto ao lado do GoogleCast.framework ou GoogleCast.xcframework que você adicionou anteriormente e marque a opção "Copiar todos os itens, se necessário" e adicione a todos os destinos.

Para instalar uma das bibliotecas dinâmicas:

  1. Faça o download e descompacte o SDK dinâmico adequado para seu projeto.
  2. Configure a biblioteca GoogleCastSDK dinâmica:
    1. Se o projeto usa CocoaPods, faça o seguinte:
      1. Abra o Podfile e remova:
        pod 'google-cast-sdk'
      2. Execute pod install na pasta raiz do projeto.
    2. Se o projeto não estiver usando CocoaPods, remova a biblioteca atual do Google Cast.
  3. Arraste o .framework ou .xcframework descompactado para seu projeto principal no navegador de projetos do Xcode (e não para o projeto de pods, se você tiver um). Marque "Copiar todos os itens, se necessário" e adicione a todos os destinos.
  4. No seu destino do Xcode, na guia General, selecione Embed and Sign para GoogleCast.framework ou GoogleCast.xcframework.

Configuração do Mac Catalyst

Para apps compatíveis com o Mac Catalyst, use a biblioteca dinâmica do SDK do Cast. Siga o processo de configuração manual para adicionar a estrutura ao seu projeto. Em seguida, exclua condicionalmente o SDK do Cast do destino Mac, conforme mencionado na documentação da Apple. As bibliotecas estáticas são pré-compiladas para a arquitetura do iOS, o que causa um erro do vinculador ao criar no destino Mac.

Publicar seu app na App Store

Antes de publicar seu app na App Store, é necessário executar o script de shell strip_unused_archs.sh para remover arquiteturas não usadas do pacote de apps. Este script está no SDK do Cast para iOS.