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

Platforma Cast obsługuje iOS 13 i nowsze wersje oraz występują w postaci statycznych i dynamicznych platform.

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

Konfiguracja Xcode

iOS 14

  1. Dodawanie do projektu pakietu SDK Cast na iOS 4.8.0

    Jeśli używasz CocoaPods, użyj pod update, aby dodać do projektu pakiet SDK 4.8.0.

    W przeciwnym razie pobierz pakiet SDK ręcznie.

  2. Dodaj NSBonjourServices do urządzenia Info.plist

    Określ NSBonjourServices w Info.plist, aby umożliwić wykrywanie sieci lokalnej w systemie iOS 14.

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

    Identyfikator appID to Twój identyfikator odbiorcy, czyli ten sam identyfikator zdefiniowany w GCKDiscoveryCriteria.

    Zaktualizuj definicję przykładu NSBonjourServices i zastąp „ABCD1234” swoim identyfikatorem aplikacji.

    <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.8.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. CocoaPods is supported for both the Universal Framework and XCFramework.

For a Universal Framework integration, use the google-cast-sdk and google-cast-sdk-no-bluetooth CocoaPods.

For an XCFramework integration, use the google-cast-sdk-xcframework and google-cast-sdk-no-bluetooth-xcframework CocoaPods.

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, '13.0'

def target_pods
  pod 'google-cast-sdk'
end

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

Oto przykład dodawania CocoaPoda google-cast-sdk-no-bluetooth do Podfile:

use_frameworks!

platform :ios, '13.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

W swoim projekcie określ zakres podów, aby zapobiec nieoczekiwanym zmianom powodującym niezgodność. Szczegółowe informacje znajdziesz w przewodniku po plikach podów.

W tym fragmencie kodu dozwolone są wersje 4.8.0 i wersje do następnej wersji głównej (główna.wersja główna).

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

Na przykład ciąg „~> 1.6.7” obejmuje wszystkie wersje od 1.6.7 do 2.0.0, ale niekoniecznie.

Konfiguracja ręczna

Aby dodać pakiet SDK Cast na iOS do projektu bez korzystania z CocoaPods, wykonaj te czynności:

Pliki do pobrania

Po pobraniu odpowiedniej biblioteki poniżej wykonaj czynności konfiguracyjne, aby dodać platformę do projektu. Wymagania konfiguracyjne dla XCFrameworks są takie same jak w przypadku starszych środowisk Universal Frameworks.

Platforma uniwersalna

Biblioteki Cast iOS Sender SDK 4.8.0:

Statyczny z Bluetoothem Statyczny bez Bluetooth

Dynamiczny przez Bluetooth Dynamiczny bez Bluetooth

XCFramework

Pakiet SDK Cast na iOS obsługuje XCFrameworks, co umożliwia programowanie na komputerach Mac z technologią Apple Silicon oraz debugowanie za pomocą symulatora iOS.

Biblioteki pakietu SDK do przesyłania na iOS Sender SDK XCFramework 4.8.0:

Statyczny XCFramework z Bluetoothem Statyczny XCFramework bez Bluetootha

Dynamiczna XCFramework z Bluetooth Dynamiczny XCFramework bez Bluetooth

Instrukcje konfiguracji

Aby zainstalować jedną z bibliotek statycznych:

  1. Pobierz i rozpakuj odpowiedni statyczny pakiet SDK dla swojego projektu.
  2. Skonfiguruj bibliotekę Protobuf w minimalnej wersji 3.13.
    1. Jeśli Twój projekt używa CocoaPods:
      1. Otwórz Podfile i usuń google-cast-sdk, jeśli istnieje:
        pod 'google-cast-sdk'
      2. Dodaj bibliotekę Protobuf, jeśli jej nie ma:
        pod 'Protobuf', '3.13'
      3. Uruchom plik pod install w folderze głównym projektu.
    2. Jeśli Twój projekt nie korzysta z CocoaPods:
      1. Usuń bieżącą wersję pakietu GoogleCastSDK (jeśli jest dostępna).
      2. Dodaj bibliotekę Protobuf w wersji 3.13 lub nowszej, postępując zgodnie z instrukcjami znajdującymi się w repozytorium Protobuf GitHub.
  3. Przeciągnij rozpakowany plik .framework lub .xcframework do głównego projektu w nawigatorze projektów Xcode (nie do projektu Pods, jeśli go masz). Zaznacz pole wyboru „Skopiuj wszystkie elementy w razie potrzeby” i dodaj je do wszystkich elementów docelowych.
  4. W projekcie Xcode dodaj flagi -ObjC -lc++ do sekcji Ustawienia kompilacji > Inne flagi łączące.
  5. Kliknij prawym przyciskiem myszy GoogleCast.framework lub GoogleCast.xcframework w projekcie i wybierz „Pokaż w Finderze”.
  6. Przeciągnij elementy GoogleCastCoreResources.bundle i GoogleCastUIResources.bundle do projektu obok dodanych wcześniej GoogleCast.framework lub GoogleCast.xcframework, zaznacz „Skopiuj wszystkie elementy w razie potrzeby” i dodaj je do wszystkich elementów docelowych.

Aby zainstalować jedną z bibliotek dynamicznych:

  1. Pobierz i rozpakuj pakiet SDK dynamiczny odpowiedni dla swojego projektu.
  2. Skonfiguruj dynamiczną bibliotekę GoogleCastSDK:
    1. Jeśli Twój projekt używa CocoaPods:
      1. Otwórz Podfile i usuń:
        pod 'google-cast-sdk'
      2. Uruchom plik pod install w folderze głównym projektu.
    2. Jeśli Twój projekt nie korzysta z CocoaPods, usuń bieżącą bibliotekę Google Cast.
  3. Przeciągnij rozpakowany plik .framework lub .xcframework do głównego projektu w nawigatorze projektów Xcode (nie do projektu Pods, jeśli go masz). Zaznacz pole wyboru „Skopiuj wszystkie elementy w razie potrzeby” i dodaj je do wszystkich elementów docelowych.
  4. W środowisku docelowym Xcode na karcie General wybierz Embed and Sign dla GoogleCast.framework lub GoogleCast.xcframework.

Konfiguracja Mac Catalyst

W przypadku aplikacji obsługujących Mac Catalyst użyj dynamicznej biblioteki pakietu SDK Cast. Aby dodać platformę do projektu, wykonaj ręczną konfigurację. Następnie warunkowo wyklucz pakiet SDK Cast z komputera Mac, jak opisano w dokumentacji Apple. Biblioteki statyczne są wstępnie kompilowane pod kątem architektury iOS, co powoduje błąd tagu łączącego podczas kompilacji pod kątem środowiska docelowego Mac.

Publikowanie aplikacji w sklepie App Store

Zanim opublikujesz aplikację w App Store, musisz uruchomić skrypt powłoki strip_unused_archs.sh, aby usunąć z pakietu aplikacji nieużywane architektury. Ten skrypt znajduje się w pakiecie SDK Cast na iOS.