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

Il framework Cast supporta iOS 12 e versioni successive ed è disponibile sia in framework statico che dinamico.

Consulta la documentazione relativa all'API Google Cast per iOS per le descrizioni di tutti i corsi e i metodi.

Tieni presente che i dispositivi di trasmissione di nuova generazione supportano la modalità ospite per iOS, a differenza dei dispositivi di generazione precedente. Per maggiori dettagli, consulta la pagina Modalità ospite - Dispositivi di trasmissione supportati.

Configurazione Xcode

iOS 14

  1. Aggiungere l'SDK Cast iOS 4.7.0 al progetto

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

    In caso contrario, richiama manualmente l'SDK.

  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 rilevamento dei dispositivi.

    L'appID è il ricevitake, che è lo stesso ID definito nel tuo GCKDiscoveryCriteria.

    Aggiorna la definizione NSBonjourServices di 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.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

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

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

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

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

Ad esempio, '~> 1.6.7' include tutte le versioni dalla 1.6.7 alla 2.0.0, esclusa.

Configurazione manuale

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

Download

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

Sono state fornite librerie senza la modalità ospite per le situazioni in cui la tua app non richiede la funzionalità o non vuoi richiedere le autorizzazioni Bluetooth®, che sono state introdotte in iOS 13. Per ulteriori informazioni, consulta il documento sulle modifiche a iOS 13.

Framework universale

Librerie iOS iOS 4.0:

Statico con modalità Ospite Statico senza modalità Ospite

Dinamico con la modalità Ospite Dinamico senza modalità Ospite

XCFramework (beta)

A partire dalla versione 4.7.1, l'SDK Cast iOS supporta XCFrameworks, che consente lo sviluppo su computer Apple M1 e il debug utilizzando il Simulatore iOS M1.

Attualmente, queste librerie sono in versione beta. Segnala eventuali problemi nello strumento Issue Tracker di Cast SDK.

Le librerie di trasmissione dell'SDK XCFramework 4.7.1 per iOS di iOS:

XCFramework statico con modalità ospite XCFramework statico senza modalità ospite

XCFramework dinamico con modalità Ospite XCFramework dinamico senza modalità Ospite

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 3.13.
    1. Se il tuo progetto utilizza CocoaPods:
      1. Apri l'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 progetto non utilizza CocoaPods:
      1. Rimuovi la versione corrente di GoogleCastSDK, se presente.
      2. Aggiungi la libreria Protobuf 3.13 o versioni successive, seguendo le istruzioni trovate nel repository GitHub Protobuf.
  3. Trascina il file .framework o .xcframework decompresso nel progetto principale nella barra di navigazione del progetto Xcode (non nel progetto pod, se ne hai uno). Seleziona 'Copia tutti gli elementi se necessario' e aggiungili a tutti i target.
  4. Nel progetto Xcode, aggiungi i flag -ObjC -lc++ a Build Settings > Other Linker Flags (Altri flag linker).
  5. Fai clic con il tasto destro del mouse su GoogleCast.framework o GoogleCast.xcframework nel progetto e seleziona 'Show In Finder'.
  6. Trascina GoogleCastCoreResources.bundle e GoogleCastUIResources.bundle nel tuo progetto accanto a GoogleCast.framework o GoogleCast.xcframework che hai aggiunto in precedenza e seleziona 'Copia tutti gli elementi se necessario' e aggiungili a tutti i target.

Per installare una delle librerie dinamici:

  1. Scarica e decomprimi l'SDK dinamico appropriato per il tuo progetto.
  2. Imposta 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 progetto non utilizza CocoaPods, rimuovi la libreria Google corrente.
  3. Trascina il file .framework o .xcframework decompresso nel progetto principale nella barra di navigazione del progetto 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 Mac Catalyst

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

Pubblicazione della tua app nell'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 è nell'SDK Cast per iOS.