Configurazione per lo sviluppo con Cast Application Framework (CAF) per iOS

Il framework Cast supporta iOS 13 e versioni successive ed è disponibile in framework statici e dinamici.

Per le descrizioni di tutte le classi e tutti i metodi, consulta la documentazione di riferimento sull'API Google Cast per iOS.

Configurazione Xcode

iOS 14

  1. Aggiungi l'SDK Cast per iOS 4.8.0 al tuo progetto

    Se usi CocoaPods, usa pod update per aggiungere l'SDK 4.8.0 al tuo progetto.

    In caso contrario, esegui il pull dell'SDK manualmente.

  2. Aggiungi NSBonjourServices a Info.plist

    Specifica NSBonjourServices in Info.plist per consentire il rilevamento tramite la rete locale su iOS 14.

    Dovrai aggiungere sia _googlecast._tcp che _<your-app-id>._googlecast._tcp come servizi per far funzionare correttamente il rilevamento dei dispositivi.

    L'appID è il tuo ID ricevitore, che è lo stesso ID definito in GCKDiscoveryCriteria.

    Aggiorna la definizione NSBonjourServices dell'esempio seguente e sostituisci "ABCD1234" con il tuo 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.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

Ecco un esempio di come aggiungere google-cast-sdk-no-bluetooth CocoaPod a 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

Per il tuo progetto, devi specificare un intervallo per i pod per evitare modifiche impreviste come descritto nella guida ai file pod.

In questo snippet sono consentite la versione 4.8.0 e le versioni fino alla versione principale successiva (major.minor.patch):

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

Ad esempio, "~> 1.6.7" includerà tutte le versioni dalla 1.6.7 fino alla versione 2.0.0 esclusa.

Configurazione manuale

Le seguenti istruzioni ti consentono di aggiungere l'SDK Cast per iOS al tuo progetto senza utilizzare CocoaPods:

Download

Dopo aver scaricato la libreria appropriata di seguito, segui la procedura di configurazione per aggiungere il framework al tuo progetto. I requisiti di configurazione per XCFrameworks sono gli stessi dei framework Universal legacy.

Framework universale

Librerie Cast iOS Sender SDK 4.8.0:

Statico con Bluetooth Statico senza Bluetooth

Dinamico con Bluetooth Dinamico senza Bluetooth

XCFramework

L'SDK Cast per iOS supporta XCFrameworks, che consente lo sviluppo su computer Mac con processore Apple e il debug mediante il Simulatore di iOS.

Librerie XCFramework 4.8.0 dell'SDK Cast iOS Sender SDK:

XCFramework statico con Bluetooth XCFramework statico senza Bluetooth

Dynamic XCFramework con Bluetooth Dynamic XCFramework senza Bluetooth

Procedura di configurazione

Per installare una delle librerie statiche:

  1. Scarica e decomprimi l'SDK statico appropriato per il tuo progetto.
  2. Configura la libreria Protobuf con la versione minima v3.13.
    1. Se il tuo progetto utilizza CocoaPods:
      1. Apri Podfile e rimuovi google-cast-sdk, se presente:
        pod 'google-cast-sdk'
      2. Aggiungi la libreria Protobuf se non presente:
        pod 'Protobuf', '3.13'
      3. Esegui pod install nella cartella principale del progetto.
    2. Se il tuo progetto non utilizza CocoaPods:
      1. Rimuovi la versione corrente di GoogleCastSDK, se presente.
      2. Aggiungi la libreria Protobuf v3.13 o successive, seguendo le istruzioni riportate nel repository GitHub di Protobuf.
  3. Trascina i file .framework o .xcframework decompressi nel tuo progetto principale nel navigatore di progetti Xcode (non nel progetto Pod, se presente). Seleziona "Copia tutti gli elementi se necessario" e aggiungili a tutti i target.
  4. Nel tuo progetto Xcode, aggiungi i flag -ObjC -lc++ a Impostazioni build > Altri flag linker.
  5. Fai clic con il pulsante destro del mouse su GoogleCast.framework o GoogleCast.xcframework nel progetto e seleziona "Mostra nel Finder".
  6. Trascina GoogleCastCoreResources.bundle e GoogleCastUIResources.bundle nel progetto accanto a GoogleCast.framework o GoogleCast.xcframework aggiunti in precedenza e seleziona "Copia tutti gli elementi se necessario", quindi aggiungili a tutti i target.

Per installare una delle librerie dinamiche:

  1. Scarica e decomprimi l'SDK dinamico appropriato per il tuo progetto.
  2. Configura la libreria dinamica GoogleCastSDK:
    1. Se il tuo progetto utilizza CocoaPods:
      1. Apri Podfile e rimuovi:
        pod 'google-cast-sdk'
      2. Esegui pod install nella cartella principale del progetto.
    2. Se il tuo progetto non utilizza CocoaPods, rimuovi la libreria Google Cast corrente.
  3. Trascina i file .framework o .xcframework decompressi nel tuo progetto principale nel navigatore di progetti Xcode (non nel progetto Pod, se presente). Seleziona "Copia tutti gli elementi se necessario" e aggiungili a tutti i target.
  4. Nel tuo target Xcode, nella scheda General, seleziona Embed and Sign per GoogleCast.framework o GoogleCast.xcframework.

Configurazione di Mac Catalyst

Per le app che supportano Mac Catalyst, utilizza la libreria dinamica dell'SDK Cast. Segui la procedura di configurazione manuale per aggiungere il framework al tuo progetto. Quindi escludi in modo condizionale l'SDK Cast dal target Mac, come indicato nella documentazione di Apple. Le librerie statiche sono precompilate per l'architettura iOS, causando un errore del linker durante la creazione rispetto alla destinazione Mac.

Pubblicare l'app sull'App Store

Prima di pubblicare l'app nell'App Store, devi eseguire lo script shell strip_unused_archs.sh per rimuovere le architetture inutilizzate dall'app bundle. Questo script si trova nell'SDK Cast per iOS.