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

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

Consulta la documentazione di riferimento sull'API Google Cast per iOS per le descrizioni di tutti i metodi e le classi.

Configurazione Xcode

iOS 14

  1. Aggiungi l'SDK Cast per iOS 4.8.0 al 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 della rete locale su iOS 14.

    Dovrai aggiungere sia _googlecast._tcp sia _<your-app-id>._googlecast._tcp come servizi per consentire il corretto funzionamento del rilevamento dei dispositivi.

    L'appID è il tuo ID destinatario, ovvero lo stesso ID definito in GCKDiscoveryCriteria.

    Aggiorna la definizione di NSBonjourServices di esempio che segue 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 progetto, devi specificare un intervallo per i pod per evitare modifiche impreviste, come descritto nella guida ai podfile.

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" includerebbe tutte le versioni dalla 1.6.7 a quella 2.0.0 esclusa,

Configurazione manuale

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

Download

Dopo aver scaricato la libreria appropriata di seguito, segui i passaggi 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 Versione statica senza Bluetooth

Dinamico con Bluetooth Dinamico senza Bluetooth

XCFramework

L'SDK Cast per iOS supporta XCFrameworks, consentendo lo sviluppo su computer Mac con processore Apple e il debug mediante il simulatore iOS.

Librerie XCFramework 4.8.0 dell'SDK Cast per iOS Sender:

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 successiva, seguendo le istruzioni disponibili nel repository GitHub di Protobuf.
  3. Trascina i valori decompressi .framework o .xcframework nel tuo progetto principale nel navigatore di progetti Xcode (non nel progetto Pod se ne hai uno). 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 che hai aggiunto in precedenza e seleziona "Copia tutti gli elementi se necessario", quindi aggiungili a tutte le destinazioni.

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 l'attuale libreria Google Cast.
  3. Trascina i valori decompressi .framework o .xcframework nel tuo progetto principale nel navigatore di progetti Xcode (non nel progetto Pod se ne hai uno). Seleziona "Copia tutti gli elementi se necessario" e aggiungili a tutti i target.
  4. Nel 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 Apple. Le librerie statiche sono precompilate per l'architettura iOS, il che genera un errore del linker durante la creazione rispetto alla destinazione Mac.

Pubblicare l'app nell'App Store

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