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

Platforma Cast obsługuje system iOS 16 i nowsze wersje oraz jest dostępna zarówno w ramach statycznych, jak i dynamicznych.

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

Konfiguracja Xcode

  1. Dodawanie do projektu pakietu Cast iOS SDK 4.8.6

    Jeśli używasz Swift Package Managera, zaktualizuj pakiet google-cast-ios-sdk do wersji 4.8.6.

    W przeciwnym razie pobierz pakiet SDK ręcznie.

  2. Dodawanie NSBonjourServices do Info.plist

    Aby umożliwić wykrywanie sieci lokalnej, podaj NSBonjourServices w Info.plist.

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

    appID to identyfikator odbiornika, który jest taki sam jak identyfikator zdefiniowany w GCKDiscoveryCriteria.

    Zaktualizuj podaną niżej przykładową 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 prośbie o dostęp do sieci lokalnej przez dodanie ciągu uprawnień aplikacji w pliku Info.plist aplikacji dla NSLocalNetworkUsageDescription, aby opisać wykrywanie Cast i inne usługi wykrywania, takie 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 dostępu do sieci lokalnej na iOS, jak pokazano na makiecie.

    Obraz okna uprawnień dostępu do sieci lokalnej Cast
  4. Ponowne opublikowanie aplikacji w Apple App Store

    Zalecamy jak najszybsze ponowne opublikowanie aplikacji przy użyciu wersji 4.8.6.

Konfiguracja Swift Package Managera

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 SDK Cast na iOS 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 obsługi wersji. Aby otrzymywać zgodne aktualizacje bez nieoczekiwanych zmian powodujących niezgodność, wybierz na przykład Do następnej wersji głównej z minimalną wersją 4.8.6.
  4. Kliknij Dodaj pakiet.
  5. Wybierz usługę GoogleCastDynamic lub GoogleCastStatic i dodaj ją do celu aplikacji.

Wybieranie wariantu platformy

Pakiet Cast iOS SDK zawiera 2 usługi:

  • GoogleCastDynamic: dynamiczny framework. Zawiera wszystkie zasoby komponentów wymagane przez komponenty interfejsu Cast i nie wymaga żadnych dodatkowych flag linkera. Aplikacje obsługujące Mac Catalyst muszą używać platformy dynamicznej. Więcej informacji znajdziesz w artykule o konfigurowaniu Mac Catalyst.
  • GoogleCastStatic: platforma statyczna. Wymaga to dodatkowych czynności konfiguracyjnych opisanych w sekcji Konfiguracja platformy statycznej.

Konfiguracja platformy statycznej

Platformy statyczne nie mogą zawierać pakietów zasobów. W rezultacie Swift Package Manager nie może automatycznie dołączyć do usługi 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 Build Settings (Ustawienia kompilacji) > Other Linker Flags (Inne flagi łącznika).
  2. Jeśli 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. Znajdź folder Resources w rozpakowanym katalogu i przeciągnij wszystkie pliki .bundle do projektu Xcode. Zaznacz „W razie potrzeby skopiuj wszystkie elementy” i dodaj do wszystkich celów.

Konfiguracja CocoaPods

Konfiguracja ręczna

Poniższe instrukcje opisują, jak dodać pakiet Cast iOS SDK do projektu bez używania menedżera pakietów Swift:

Pobrane

Po pobraniu odpowiedniej biblioteki poniżej wykonaj czynności konfiguracyjne, 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 rozpakuj 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 „Copy all items if needed” (Skopiuj wszystkie elementy w razie potrzeby) i dodaj do wszystkich celów.
  4. W docelowym projekcie 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 podanymi 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 Build Settings (Ustawienia kompilacji) > Other Linker Flags (Inne flagi łącznika).
  2. Znajdź folder Resources w rozpakowanym katalogu i przeciągnij wszystkie pliki .bundle do projektu obok dodanego wcześniej pliku GoogleCast.xcframework. Zaznacz „Copy all items if needed” (Skopiuj wszystkie elementy w razie potrzeby) i dodaj do wszystkich miejsc docelowych.

Konfiguracja Mac Catalyst

W przypadku aplikacji obsługujących Mac Catalyst użyj biblioteki dynamicznej pakietu Cast SDK. Aby dodać platformę do projektu, wykonaj proces konfiguracji ręcznej. Następnie warunkowo wyklucz pakiet Cast SDK z celu Mac, jak opisano w dokumentacji Apple. Biblioteki statyczne są wstępnie kompilowane na potrzeby architektury iOS, co powoduje błąd konsolidatora podczas kompilowania na potrzeby Maca.