Configuration pour le développement avec le framework d'application Cast (CAF) pour iOS

Le framework Cast est compatible avec iOS 12 et versions ultérieures. Il est disponible dans les frameworks statiques et dynamiques.

Consultez la documentation de référence de l'API Google Cast pour iOS pour obtenir une description de toutes les classes et méthodes.

Notez que les appareils Cast de nouvelle génération sont compatibles avec le mode Invité sur iOS, contrairement aux appareils plus anciens. Pour en savoir plus, consultez Mode Invité – Appareils Cast compatibles.

Configuration Xcode

iOS 14

  1. Ajouter le SDK iOS 4.7.0 à votre projet

    Si vous utilisez CocoaPods, utilisez pod update pour ajouter le SDK 4.7.0 à votre projet.

    Sinon, importez le SDK manuellement.

  2. Ajoutez NSBonjourServices à votre Info.plist

    Indiquez NSBonjourServices dans votre Info.plist pour permettre la découverte du réseau local sur iOS 14.

    Vous devez ajouter _googlecast._tcp et _<your-app-id>._googlecast._tcp comme services pour que la détection d'appareils fonctionne correctement.

    L'ID d'application est votre ID de destinataire, qui est le même que celui défini dans votre GCKDiscoveryCriteria.

    Mettez à jour l'exemple de définition NSBonjourServices et remplacez"ABCD1234"par votre ID d'application.

    <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

Voici un exemple d'ajout du CocoaPod google-cast-sdk-no-bluetooth à votre 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

Pour votre projet, vous devez spécifier une plage pour vos pods afin d'éviter des modifications destructives inattendues, comme indiqué dans le guide du fichier Podfile.

Dans cet extrait, la version 4.7.0 et les versions jusqu'à la version majeure suivante (major.minor.patch) sont autorisées:

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

Par exemple, '~> 1.6.7' permet d'inclure toutes les versions 1.6.7 et ultérieures, à l'exclusion de la version 2.0.0.

Configuration manuelle

Les instructions suivantes permettent d'ajouter le SDK iOS Cast à votre projet sans utiliser CocoaPods:

Téléchargements

Après avoir téléchargé la bibliothèque appropriée ci-dessous, suivez les étapes de configuration pour ajouter le framework à votre projet. Les exigences de configuration pour XCFrameworks sont identiques à celles de l'ancien framework Universal Frameworks.

Des bibliothèques sans mode Invité ont été fournies pour les situations où votre application ne nécessite pas cette fonctionnalité ou pour lesquelles vous ne souhaitez pas exiger les autorisations Bluetooth® introduites dans iOS 13. Pour en savoir plus, consultez le document concernant les modifications apportées à iOS 13.

Framework universel

Bibliothèques du SDK Expéditeur iOS 4.7.0:

Statique avec le mode Invité Statique sans le mode Invité

Dynamique avec le mode Invité Dynamique sans le mode Invité

XCFramework (bêta)

À partir de la version 4.7.1, le SDK Cast pour iOS est compatible avec XCFrameworks, ce qui permet de développer sur des ordinateurs Apple M1 et de déboguer à l'aide du simulateur iOS M1.

Ces bibliothèques sont actuellement disponibles en version bêta. Veuillez signaler tous les problèmes à l'outil de suivi des problèmes du SDK Cast.

Bibliothèques XCFramework 4.7.1 Cast SDK d'expéditeur iOS:

XCFramework statique avec le mode Invité XCFramework statique sans mode Invité

Dynamic XCFramework avec le mode Invité XCFramework dynamique sans mode Invité

Procédure de configuration

Pour installer l'une des bibliothèques statiques:

  1. Téléchargez et décompressez le SDK statique approprié pour votre projet.
  2. Configurez la bibliothèque Protobuf avec la version minimale v3.13.
    1. Si votre projet utilise CocoaPods:
      1. Ouvrez votre Podfile et supprimez le google-cast-sdk s'il est présent :
        pod 'google-cast-sdk'
      2. Ajoutez la bibliothèque Protobuf si elle n'est pas présente :
        pod 'Protobuf', '3.13'
      3. Exécutez pod install dans le dossier racine de votre projet.
    2. Si votre projet n'utilise pas CocoaPods:
      1. Supprimez la version actuelle de GoogleCastSDK, le cas échéant.
      2. Ajoutez la bibliothèque Protobuf v3.13 ou ultérieure en suivant les instructions du dépôt Protobuf GitHub.
  3. Faites glisser .framework ou .xcframework dans votre projet principal à partir du navigateur de projet Xcode (et non dans le projet de pods, le cas échéant). Cochez la case "Copier tous les éléments si nécessaire" et ajoutez-le à toutes les cibles.
  4. Dans votre projet Xcode, ajoutez les options -ObjC -lc++ à Build Settings > Other Linker Flags.
  5. Effectuez un clic droit sur GoogleCast.framework ou GoogleCast.xcframework dans votre projet, puis sélectionnez 'Afficher dans le Finder'.
  6. Faites glisser GoogleCastCoreResources.bundle et GoogleCastUIResources.bundle dans votre projet à côté de GoogleCast.framework ou GoogleCast.xcframework que vous avez précédemment ajoutés. Cochez la case "Copier tous les éléments si nécessaire" et ajoutez-le à toutes les cibles.

Pour installer l'une des bibliothèques dynamiques:

  1. Téléchargez et décompressez le SDK dynamique approprié pour votre projet.
  2. Configurez la bibliothèque dynamique GoogleCastSDK:
    1. Si votre projet utilise CocoaPods:
      1. Ouvrez votre Podfile et supprimez :
        pod 'google-cast-sdk'
      2. Exécutez pod install dans le dossier racine de votre projet.
    2. Si votre projet n'utilise pas CocoaPods, supprimez la bibliothèque Google Cast actuelle.
  3. Faites glisser .framework ou .xcframework dans votre projet principal à partir du navigateur de projet Xcode (et non dans le projet de pods, le cas échéant). Cochez la case "Copier tous les éléments si nécessaire" et ajoutez-le à toutes les cibles.
  4. Dans votre cible Xcode, sous l'onglet General, sélectionnez Embed and Sign pour GoogleCast.framework ou GoogleCast.xcframework.

Configuration de Mac Catalyst

Pour les applications compatibles avec Mac Catalyst, utilisez la bibliothèque dynamique du SDK Cast. Suivez le processus de configuration manuelle pour ajouter le framework à votre projet. Ensuite, excluez le SDK Cast de la cible Mac, comme indiqué dans la documentation Apple. Les bibliothèques statiques sont précompilées pour l'architecture iOS, ce qui provoque une erreur Linker lors de la compilation par rapport à la cible Mac.

Publier votre application sur l'App Store

Avant de publier votre application sur l'App Store, vous devez exécuter le script shell strip_unused_archs.sh pour supprimer les architectures inutilisées de l'app bundle. Ce script se trouve dans le SDK Cast pour iOS.