Einrichtung für die Entwicklung mit dem Cast Application Framework (CAF) für iOS

Das Cast-Framework unterstützt iOS 14 und höher und ist sowohl als statisches als auch als dynamisches Framework verfügbar.

Beschreibungen aller Klassen und Methoden finden Sie in der Google Cast iOS API-Referenz.

Xcode-Einrichtung

iOS 14

  1. Dem Projekt das Cast iOS SDK 4.8.3 hinzufügen

    Wenn Sie CocoaPods verwenden, fügen Sie Ihrem Projekt mit pod update das SDK 4.8.3 hinzu.

    Andernfalls ziehen Sie das SDK manuell ein.

  2. NSBonjourServices zu Info.plist hinzufügen

    Geben Sie NSBonjourServices in Ihrer Info.plist an, damit die Suche im lokalen Netzwerk unter iOS 14 erfolgreich ist.

    Sie müssen sowohl _googlecast._tcp als auch _<your-app-id>._googlecast._tcp als Dienste hinzufügen, damit die Gerätesuche ordnungsgemäß funktioniert.

    Die appID ist Ihre Empfänger-ID. Sie entspricht der ID, die in GCKDiscoveryCriteria definiert ist.

    Aktualisieren Sie die folgende Beispieldefinition für NSBonjourServices und ersetzen Sie „ABCD1234“ durch Ihre App-ID.

    <key>NSBonjourServices</key>
    <array>
      <string>_googlecast._tcp</string>
      <string>_ABCD1234._googlecast._tcp</string>
    </array>
  3. NSLocalNetworkUsageDescription zu Info.plist hinzufügen

    Wir empfehlen Ihnen dringend, die im Prompt für lokale Netzwerke angezeigte Nachricht anzupassen. Fügen Sie dazu in der Datei Info.plist Ihrer App einen appspezifischen Berechtigungsstring für NSLocalNetworkUsageDescription hinzu, um beispielsweise die Erkennung von Cast und anderen Erkennungsdiensten wie DIAL zu beschreiben.

    <key>NSLocalNetworkUsageDescription</key>
    <string>${PRODUCT_NAME} uses the local network to discover Cast-enabled devices on your WiFi
    network.</string>

    Diese Nachricht wird im iOS-Dialogfeld „Zugriff auf das lokale Netzwerk“ angezeigt, wie im Mockup dargestellt.

    Bild des Dialogfelds für die Berechtigungen für den lokalen Netzwerkzugriff bei der Übertragung
  4. App noch einmal im Apple App Store veröffentlichen

    Wir empfehlen Ihnen außerdem, Ihre App so bald wie möglich mit 4.8.3 neu zu veröffentlichen.

iOS 13

iOS 12

Achten Sie darauf, dass die Option Auf WLAN-Informationen zugreifen im Bereich Funktionen des Ziels auf „An“ gesetzt ist.

Außerdem muss Ihr Bereitstellungsprofil die Funktion Auf WLAN-Informationen zugreifen unterstützen. Sie können sie im Apple Developer Portal hinzufügen.

CocoaPods-Einrichtung

Wir empfehlen, Google Cast mit CocoaPods zu integrieren. Verwenden Sie für die Integration die CocoaPods google-cast-sdk.

Folgen Sie dem Startleitfaden.

Nachdem CocoaPods eingerichtet ist, folge der Anleitung zur Verwendung von CocoaPods, um deine Podfile zu erstellen und dein Projekt für die Verwendung mit dem Google Cast SDK vorzubereiten.

Hier ist ein Beispiel für das Hinzufügen des CocoaPods google-cast-sdk zu Podfile:

use_frameworks!

platform :ios, '14.0'

def target_pods
  pod 'google-cast-sdk'
end

target 'CastVideos-objc' do
  target_pods
end
target 'CastVideos-swift' do
  target_pods
end

Sie sollten für Ihr Projekt einen Bereich für Ihre Pods angeben, um unerwartete bahnbrechende Änderungen zu vermeiden, wie im Leitfaden für Podfiles beschrieben.

In diesem Snippet sind Version 4.8.3 und die Versionen bis zur nächsten Hauptversion (Hauptversion.Nebenversion.Patch) zulässig:

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

„~> 1.6.7“ umfasst beispielsweise alle Versionen von 1.6.7 bis einschließlich 2.0.0.

Manuelle Einrichtung

In der folgenden Anleitung wird beschrieben, wie du deinem Projekt das Cast SDK für iOS hinzufügst, ohne CocoaPods zu verwenden:

Downloads

Nachdem Sie die entsprechende Bibliothek unten heruntergeladen haben, folgen Sie der Anleitung zur Einrichtung, um das Framework Ihrem Projekt hinzuzufügen.

Cast iOS Sender SDK 4.8.3-Bibliotheken:

Statisch Dynamisch

Einrichtungsschritte

So installieren Sie die Bibliothek:

  1. Laden Sie das entsprechende SDK für Ihr Projekt herunter und entpacken Sie es.
  2. Richte die dynamische GoogleCastSDK-Bibliothek ein:
  3. Ziehen Sie die entpackte .xcframework im Xcode-Projektnavigator in Ihr Hauptprojekt (nicht in das Pods-Projekt, falls vorhanden). Setzen Sie ein Häkchen bei „Bei Bedarf alle Elemente kopieren“ und fügen Sie sie allen Zielen hinzu.
  4. Wählen Sie in Ihrem Xcode-Ziel auf dem Tab General die Option Embed and Sign für GoogleCast.xcframework aus.

Wenn Sie die statische Bibliothek einrichten, führen Sie zusätzlich zu den vorherigen Schritten die folgenden aus:

  1. Richten Sie die Protobuf-Bibliothek mit der Mindestversion 3.13 ein.
    1. Wenn in Ihrem Projekt CocoaPods verwendet werden:
      1. Öffnen Sie Ihre Podfile und entfernen Sie gegebenenfalls das google-cast-sdk:
        pod 'google-cast-sdk'
      2. Fügen Sie die Bibliothek Protobuf hinzu, falls sie nicht vorhanden ist:
        pod 'Protobuf', '3.13'
      3. Führen Sie pod install im Stammverzeichnis Ihres Projekts aus.
    2. Wenn in Ihrem Projekt keine CocoaPods verwendet werden:
      1. Entfernen Sie die aktuelle Version von GoogleCastSDK, falls vorhanden.
      2. Fügen Sie die Protobuf-Bibliothek 3.13 oder höher hinzu. Folgen Sie dazu der Anleitung im Protobuf-GitHub-Repository.
  2. Fügen Sie in Ihrem Xcode-Projekt die Flags -ObjC -lc++ unter Build-Einstellungen > Weitere Linker-Flags hinzu.
  3. Suchen Sie im entpackten Verzeichnis den Ordner „Resources“ und ziehen Sie GoogleCastCoreResources.bundle, GoogleCastUIResources.bundle und MaterialDialogs.bundle in Ihr Projekt neben die zuvor hinzugefügte GoogleCast.xcframework. Setzen Sie ein Häkchen bei „Bei Bedarf alle Elemente kopieren“ und fügen Sie sie allen Zielen hinzu.

Mac Catalyst-Einrichtung

Verwenden Sie für Apps, die Mac Catalyst unterstützen, die dynamische Bibliothek des Cast SDK. Folgen Sie der Anleitung zur manuellen Einrichtung, um das Framework Ihrem Projekt hinzuzufügen. Schließen Sie dann das Cast SDK wie in der Apple-Dokumentation beschrieben bedingt vom Mac-Ziel aus. Statische Bibliotheken werden für die iOS-Architektur vorkompiliert, was beim Erstellen für das Mac-Ziel zu einem Linkerfehler führt.