Przygotowanie do programowania za pomocą platformy Cast Application Framework (CAF) na iOS

Platforma Cast obsługuje system iOS 16 i nowsze wersje. Jest dostępna w postaci statycznej i dynamicznej.

Opisy wszystkich klas i metod znajdziesz w dokumentacji interfejsu Google Cast API na iOS.

Konfiguracja Xcode

  1. Dodawanie pakietu Cast iOS SDK w wersji 4.8.6 do projektu

    Jeśli korzystasz z  Swift Package Manager, zaktualizuj pakiet google-cast-ios-sdk do wersji 4.8.6.

    W przeciwnym razie ręcznie pobierz pakiet SDK.

  2. Dodaj NSBonjourServices do Info.plist

    W NSBonjourServices w Info.plist określ, czy zezwolić na wykrywanie sieci lokalnych.

    Aby wykrywanie urządzeń działało prawidłowo, musisz dodać zarówno _googlecast._tcp, jak i _<your-app-id>._googlecast._tcp jako usługi.

    Identyfikator aplikacji to identyfikator odbiorcy, czyli ten sam identyfikator, który jest zdefiniowany w GCKDiscoveryCriteria.

    Zaktualizuj tę definicję NSBonjourServices i zastąp „ABCD1234” identyfikatorem aplikacji.

    <key>NSBonjourServices</key>
    <array>
      <string>_googlecast._tcp</string>
      <string>_ABCD1234._googlecast._tcp</string>
    </array>
  3. Dodaj NSLocalNetworkUsageDescription do Info.plist

    Zdecydowanie zalecamy dostosowanie wiadomości wyświetlanej w oknie z prośbą o zezwolenie na dostęp do sieci lokalnej przez dodanie w pliku Info.plist aplikacji ciągu znaków z prośbą o zezwolenie na dostęp do sieci lokalnej, np. NSLocalNetworkUsageDescription w celu opisania wykrywania Cast i innych usług wykrywania, takich jak DIAL.

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

    Ten komunikat pojawi się w oknie dialogowym dostępu do sieci lokalnej w iOS, jak pokazano na makiecie.

    Obraz okna uprawnień dostępu do sieci lokalnej podczas przesyłania
  4. Ponownie opublikuj aplikację w Apple App Store

    Zalecamy jak najszybsze ponowne opublikowanie aplikacji z użyciem wersji 4.8.6.

Konfiguracja Swift Package Manager

Zalecanym sposobem integracji Google Cast jest użycie Menedżera pakietów Swift (SPM). Pakiet Cast iOS SDK jest dostępny w repozytorium GitHub google-cast-ios-sdk.

Aby dodać pakiet Cast iOS SDK do projektu w Xcode:

  1. W Xcode kliknij File (Plik) > Add Packages… (Dodaj pakiety…).
  2. Wpisz adres URL repozytorium:https://github.com/googlecast/google-cast-ios-sdk
  3. Wybierz reguły tworzenia wersji. Na przykład wybierz Do następnej wersji głównej z minimalną wersją 4.8.6, aby otrzymywać zgodne aktualizacje bez nieoczekiwanych zmian powodujących problemy.
  4. Kliknij Dodaj pakiet.
  5. Wybierz produkt GoogleCastDynamic lub GoogleCastStatic i dodaj go do docelowej aplikacji.

Wybierz wariant platformy

Pakiet Cast SDK na iOS zawiera 2 usługi:

  • GoogleCastDynamic: dynamiczny framework. Zawiera wszystkie zasoby wymagane przez komponenty interfejsu Cast i nie wymaga żadnych dodatkowych flag linkera. Aplikacje obsługujące Mac Catalyst muszą korzystać z dynamicznego frameworka. Więcej informacji znajdziesz w sekcji Konfiguracja Mac Catalyst.
  • GoogleCastStatic: framework statyczny. Wymaga dodatkowych czynności konfiguracyjnych opisanych w sekcji Konfiguracja statycznego frameworka.

Konfiguracja platformy statycznej

Statyczne struktury nie mogą zawierać pakietów zasobów. W rezultacie Swift Package Manager nie może automatycznie dołączyć do produktu GoogleCastStatic zasobów wymaganych przez komponenty interfejsu Cast (takich jak obrazy interfejsu, scenorysy i pliki lokalizacyjne). Jeśli dodasz GoogleCastStatic do celu, wykonaj te czynności:

  1. W projekcie Xcode dodaj flagi -ObjC -lc++ do Ustawień kompilacji > Inne flagi linkera.
  2. Jeśli Twoja aplikacja korzysta z komponentów interfejsu Cast, ręcznie dodaj pakiety zasobów do projektu:
    1. Pobierz bibliotekę statyczną z sekcji Pobrane. Upewnij się, że wersja biblioteki statycznej jest zgodna z wersją dodanego pakietu.
    2. W rozpakowanym katalogu znajdź folder Resources i przeciągnij wszystkie pliki .bundle do projektu w Xcode. Zaznacz „Kopiuj wszystkie elementy w razie potrzeby” i dodaj do wszystkich miejsc docelowych.

Konfiguracja CocoaPods

Konfiguracja ręczna

Poniższe instrukcje dotyczą dodawania pakietu Cast iOS SDK do projektu bez użycia Swift Package Manager:

Pobrane

Po pobraniu odpowiedniej biblioteki wykonaj kroki konfiguracji, aby dodać platformę do projektu.

Biblioteki pakietu Cast iOS Sender SDK w wersji 4.8.6:

Statyczne Dynamiczne

Instrukcje konfiguracji

Aby zainstalować bibliotekę:

  1. Pobierz i wyodrębnij odpowiedni pakiet SDK dla swojego projektu.
  2. Skonfiguruj dynamiczną bibliotekę GoogleCastSDK:
  3. Przeciągnij rozpakowany plik .xcframework do głównego projektu w nawigatorze projektów Xcode. Zaznacz „Skopiuj wszystkie elementy w razie potrzeby” i dodaj do wszystkich miejsc docelowych.
  4. W Xcode na karcie General wybierz Embed and Sign dla GoogleCast.xcframework.

Jeśli konfigurujesz bibliotekę dynamiczną, oprócz poprzednich kroków wykonaj te czynności:

  1. Usuń bieżącą wersję GoogleCastSDK, jeśli jest zainstalowana.
  2. Dodaj bibliotekę Protobuf w wersji 3.13 lub nowszej, postępując zgodnie z instrukcjami w repozytorium Protobuf na GitHubie.

Jeśli konfigurujesz bibliotekę statyczną, oprócz poprzednich kroków wykonaj te czynności:

  1. W projekcie Xcode dodaj flagi -ObjC -lc++ do Ustawienia kompilacji > Inne flagi linkera.
  2. W rozpakowanym katalogu znajdź folder Resources i przeciągnij wszystkie pliki .bundle do projektu obok dodanego wcześniej pliku GoogleCast.xcframework. Zaznacz „Skopiuj wszystkie elementy w razie potrzeby” i dodaj do wszystkich miejsc docelowych.

Konfiguracja Mac Catalyst

W przypadku aplikacji obsługujących Mac Catalyst używaj biblioteki dynamicznej pakietu Cast SDK. Aby dodać platformę do projektu, postępuj zgodnie z instrukcjami konfiguracji ręcznej. Następnie warunkowo wyklucz pakiet Cast SDK z elementu docelowego Mac, jak wspomniano w dokumentacji Apple. Biblioteki statyczne są wstępnie skompilowane pod kątem architektury iOS, co powoduje błąd linkera podczas kompilowania pod kątem Maca.