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

El framework de Cast admite iOS 13 y versiones posteriores, y se ofrece en frameworks estáticos y dinámicos.

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

Configuración de Xcode

iOS 14

  1. Agrega el SDK de Cast para iOS 4.8.0 a tu proyecto.

    Si usas CocoaPods, usa pod update para agregar el SDK 4.8.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 la detección de la red local tenga éxito en iOS 14.

    Deberás agregar _googlecast._tcp y _<your-app-id>._googlecast._tcp como servicios para que la detección de dispositivos funcione correctamente.

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

    Actualiza la siguiente definición de NSBonjourServices de ejemplo y reemplaza "ABCD1234" por el ID de la 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

Este es un ejemplo de cómo agregar el CocoaPod google-cast-sdk-no-bluetooth a tu 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

En tu proyecto, debes especificar un rango para tus Pods a fin de evitar cambios rotundos inesperados, como se detalla en la guía de Pods.

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

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

Por ejemplo, "~> 1.6.7" incluiría todas las versiones desde la 1.6.7 hasta la 2.0.0, pero no incluidas.

Configuración manual

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

Descargas

Después de descargar la biblioteca correspondiente 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 Universal Frameworks heredados.

Marco de trabajo universal

Bibliotecas del SDK de Cast para iOS 4.8.0:

Estática con Bluetooth Estática sin Bluetooth

Dinámico con Bluetooth Dinámico sin Bluetooth

XCFramework

El SDK de Cast para iOS es compatible con XCFrameworks, lo que permite el desarrollo en computadoras Mac con Apple Silicon, junto con la depuración mediante el simulador de iOS.

Bibliotecas de XCFramework 4.8.0 del SDK de Cast para iOS:

XCFramework estático con Bluetooth XCFramework estático sin Bluetooth

XCFramework dinámico con Bluetooth XCFramework dinámico sin Bluetooth

Pasos de la configuración

Para instalar una de las bibliotecas estáticas, haz lo siguiente:

  1. Descarga y descomprime el SDK estático adecuado para tu proyecto.
  2. Configura la biblioteca de Protobuf con la versión mínima v3.13.
    1. Si tu proyecto usa CocoaPods:
      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:
      1. Quita la versión actual de GoogleCastSDK si está presente.
      2. Para agregar la biblioteca de Protobuf 3.13 o una versión posterior, sigue las instrucciones que se encuentran en el repositorio de Protobuf en GitHub.
  3. Arrastra el elemento .framework o .xcframework descomprimido a tu proyecto principal en el navegador de proyectos de Xcode (no al proyecto de Pods, si tienes uno). Marca la opción "Copiar todos los elementos si es necesario" y agrégalo a todas las opciones de segmentación.
  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 “Mostrar en el Finder”.
  6. Arrastra GoogleCastCoreResources.bundle y GoogleCastUIResources.bundle a tu proyecto junto a GoogleCast.framework o GoogleCast.xcframework que agregaste antes, marca la opción “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 GoogleCastSDK:
    1. Si tu proyecto usa CocoaPods:
      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 el proyecto no usa CocoaPods, quita la biblioteca actual de Google Cast.
  3. Arrastra el elemento .framework o .xcframework descomprimido a tu proyecto principal en el navegador de proyectos de Xcode (no al proyecto de Pods, si tienes uno). Marca la opción "Copiar todos los elementos si es necesario" y agrégalo a todas las opciones de segmentación.
  4. En el destino de Xcode, en la pestaña General, selecciona Embed and Sign para GoogleCast.framework o GoogleCast.xcframework.

Configuración de Mac Catalyst

En el caso de las 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 para Mac, como se indica 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 en el destino de Mac.

Cómo publicar tu app en App Store

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