Configuración para el desarrollo con el framework de aplicaciones de Cast (CAF) para iOS

El framework de Cast es compatible con iOS 12 y versiones posteriores, y viene en frameworks dinámicos y estáticos.

Consulta la referencia de la API de Google Cast para iOS a fin de obtener descripciones de todas las clases y los métodos.

Ten en cuenta que los dispositivos de transmisión más recientes admiten el modo de invitado para iOS, pero los dispositivos de generación anterior no. Para obtener más información, consulta Modo de invitado: dispositivos de transmisión compatibles.

Configuración de Xcode

iOS 14

  1. Agrega el SDK para Cast para iOS 4.7.0 a tu proyecto.

    Si usas CocoaPods, usa pod update para agregar el SDK 4.7.0 a tu proyecto.

    De lo contrario, extrae el SDK de forma manual.

  2. Agrega NSBonjourServices a tu Info.plist

    Especifica NSBonjourServices en tu Info.plist para permitir que el descubrimiento de redes locales tenga éxito en iOS 14.

    Deberás agregar _googlecast._tcp y _<your-app-id>._googlecast._tcp como servicios para que el descubrimiento de dispositivos funcione correctamente.

    El appID es tu ID de receptor, que es el mismo que se define en tu GCKDiscoveryCriteria.

    Actualiza la siguiente definición de ejemplo de NSBonjourServices y reemplaza "ABCD1234" por tu appID.

    <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.7.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.

The google-cast-sdk and google-cast-sdk-no-bluetooth CocoaPods are available for download.

Use the google-cast-sdk-no-bluetooth if your app does not require guest mode or you do not wish to require Bluetooth® permission.

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, '12.0'

def target_pods
  pod 'google-cast-sdk'
end

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

A continuación, se muestra un ejemplo de cómo agregar el CocoaPod google-cast-sdk-no-bluetooth a tu Podfile:

use_frameworks!

platform :ios, '12.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 tu proyecto, debes especificar un rango para tus Pods a fin de evitar cambios rotundos inesperados, como se detalla en la guía del Podfile.

En este fragmento, se permiten la versión 4.7.0 y las versiones posteriores a la siguiente versión principal (major.minor.patch).

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

Por ejemplo, “~> 1.6.7” incluiría todas las versiones de 1.6.7 y posteriores, pero no incluye la versión 2.0.0.

Configuración manual

Las siguientes instrucciones son para agregar el SDK de Cast para iOS a tu proyecto sin usar CocoaPods:

Descargas

Después de descargar la biblioteca adecuada a continuación, sigue los pasos de configuración para agregar el framework a tu proyecto. Los requisitos de configuración son los mismos para XCFrameworks que los frameworks universales heredados.

Se proporcionaron bibliotecas sin modo de invitado para situaciones en las que tu app no requiere la función o si no deseas usar los permisos de Bluetooth®, que se introdujeron en iOS 13. Consulta el documento de cambios de iOS 13 para obtener más información.

Marco de trabajo universal

Bibliotecas del SDK para el remitente de iOS 4.7.0:

Estática con modo de invitado Estática sin modo de invitado

Dinámica con modo de invitado Dinámico sin modo de invitado

XCFramework (beta)

A partir de la versión 4.7.1, el SDK de Cast para iOS es compatible con XCFrameworks, lo que permite el desarrollo en computadoras Apple M1 y la depuración mediante el simulador de iOS de M1.

Estas bibliotecas se encuentran actualmente en versión beta. Informa cualquier problema en la Herramienta de seguimiento de errores del SDK de Cast.

Bibliotecas XCFramework 4.7.1 del SDK de Sender para iOS:

XCFramework estático con modo de invitado XCFramework estático sin modo de invitado

XCFramework dinámico con modo de invitado XCFramework dinámico sin modo de invitado

Pasos para la configuración

Para instalar una de las bibliotecas static, haz lo siguiente:

  1. Descarga y descomprime el SDK estático correspondiente para tu proyecto.
  2. Configura la biblioteca de Protobuf con la versión mínima v3.13.
    1. Si tu proyecto usa CocoaPods, haz lo siguiente:
      1. Abre tu Podfile y quita el google-cast-sdk si está presente:
        pod 'google-cast-sdk'
      2. Agrega la biblioteca Protobuf si no está presente:
        pod 'Protobuf', '3.13'
      3. Ejecuta pod install en la carpeta raíz de tu proyecto.
    2. Si tu proyecto no usa CocoaPods, haz lo siguiente:
      1. Quita la versión actual de GoogleCastSDK si está presente.
      2. Agrega la biblioteca de Protobuf v3.13 o una versión posterior según las instrucciones que se encuentran en el repositorio de GitHub de Protobuf.
  3. Arrastra el .framework o .xcframework descomprimidos a tu proyecto principal en el navegador del proyecto de Xcode (no al proyecto de Pods, si tienes uno). Marque la opción "Copiar todos los elementos si es necesario" y agréguela a todos los destinos.
  4. En tu proyecto de Xcode, agrega las marcas -ObjC -lc++ a Build Settings > Other Linker Flags.
  5. Haz clic con el botón derecho en GoogleCast.framework o GoogleCast.xcframework en tu proyecto y selecciona “Show In Finder”.
  6. Arrastra los objetos GoogleCastCoreResources.bundle y GoogleCastUIResources.bundle al proyecto junto a los elementos GoogleCast.framework o GoogleCast.xcframework que agregaste antes, marca “Copiar todos los elementos si es necesario” y agrégalos a todos los destinos.

Para instalar una de las bibliotecas dinámicas, haz lo siguiente:

  1. Descarga y descomprime el SDK dinámico adecuado para tu proyecto.
  2. Configura la biblioteca dinámica del SDK de GoogleCast:
    1. Si tu proyecto usa CocoaPods, haz lo siguiente:
      1. Abre tu Podfile y quita lo siguiente:
        pod 'google-cast-sdk'
      2. Ejecuta pod install en la carpeta raíz de tu proyecto.
    2. Si tu proyecto no usa CocoaPods, quita la biblioteca actual de Google Cast.
  3. Arrastra el .framework o .xcframework descomprimidos a tu proyecto principal en el navegador del proyecto de Xcode (no al proyecto de Pods, si tienes uno). Marque la opción "Copiar todos los elementos si es necesario" y agréguela a todos los destinos.
  4. En tu destino de Xcode, en la pestaña General, selecciona Embed and Sign para GoogleCast.framework o GoogleCast.xcframework.

Configuración de Mac Catalyst

Para apps compatibles con Mac Catalyst, usa la biblioteca dinámica del SDK de Cast. Sigue el proceso de configuración manual para agregar el framework a tu proyecto. Luego, excluye condicionalmente el SDK de Cast del destino de Mac como se menciona en la documentación de Apple. Las bibliotecas estáticas se compilan previamente para la arquitectura de iOS, lo que genera un error de vinculador cuando se compila con el destino de Mac.

Publicar tu app en App Store

Antes de publicar tu app en la App Store, debes ejecutar la secuencia de comandos de shell strip_unused_archs.sh para quitar las arquitecturas sin usar del paquete de aplicación. Esta secuencia de comandos está en el SDK de Cast para iOS.