Począwszy od iOS 14, system operacyjny będzie wymuszał nowe ograniczenia i uprawnienia, które mają wpływ na wrażenia użytkowników korzystających z Cast. Będzie to też miało wpływ na sposób, w jaki integrujesz pakiet Cast SDK z aplikacją. Aby aplikacja zachowała funkcje Cast w najnowszych wersjach iOS, musisz wprowadzić zmiany, które będą uwzględniać te zmiany uprawnień.
iOS 14
Deweloperzy powinni zaktualizować aplikacje nadawcze Cast na iOS do pakietu Google Cast SDK w wersji 4.6.0 lub nowszej. Te wersje obsługują iOS 14 i jego wymagania.
Począwszy od iOS 14, aplikacje, które skanują urządzenia w sieci lokalnej, będą wyświetlać użytkownikom jednorazowe okno z prośbą o uprawnienia do znajdowania urządzeń w sieci lokalnej i łączenia się z nimi. Platforma Cast korzysta z sieci lokalnej do wykrywania urządzeń Cast i sterowania nimi, więc jeśli użytkownik odmówi przyznania uprawnień, nie będzie mógł przesyłać treści.
Aby poprawić wrażenia użytkowników, wprowadzamy pewne zmiany w interfejsie użytkownika w pakiecie SDK dla aplikacji, które korzystają ze standardowego selektora urządzeń. Dzięki tym zmianom użytkownicy będą lepiej rozumieć, dlaczego potrzebne są uprawnienia dostępu do sieci lokalnej, oraz jak włączyć przesyłanie, jeśli dostęp do urządzeń w sieci lokalnej został wyłączony.
Aplikacje utworzone za pomocą wersji pakietu Cast SDK 4.4.8 lub starszych będą nadal działać, o ile zostały utworzone za pomocą Xcode 11.7 lub starszego. Jeśli tworzysz aplikację na iOS 14 za pomocą Xcode 12 lub nowszego, zalecamy przejście na pakiet Cast SDK w wersji 4.6.0 lub nowszej, aby mieć pewność, że aplikacja Cast będzie nadal działać prawidłowo.
Pakiet Cast iOS SDK w wersji 4.6.0 lub nowszej można pobrać za pomocą CocoaPods, postępując zgodnie z instrukcjami konfiguracji CocoaPods, lub ręcznie, postępując zgodnie z instrukcjami konfiguracji ręcznej. Ta wersja zawiera zmiany w podstawowym mechanizmie wykrywania, które umożliwiają aplikacjom utworzonym za pomocą Xcode 12 znajdowanie urządzeń Cast w sieci. Przycisk Cast powinien być teraz zawsze widoczny. Jeśli po naciśnięciu przycisku Cast nie będą dostępne żadne urządzenia, wyświetli się okno z informacjami o tym, dlaczego urządzenia mogą być niedostępne, oraz o tym, jak ponownie włączyć uprawnienia dostępu do sieci lokalnej.
Zmiany w pakiecie Cast SDK
Pierwsze przesyłanie
Gdy użytkownik po raz pierwszy spróbuje przesłać treści, pojawi się pełnoekranowe okno z informacjami o dostępie do sieci lokalnej (LNA), w którym wyjaśniono, dlaczego potrzebny jest dostęp do sieci lokalnej. Następnie pojawi się prośba o uprawnienia dostępu do sieci lokalnej na iOS. Poniższe makiety ilustrują ten proces:

Usługa Cast jest niedostępna
Począwszy od pakietu iOS Sender SDK w wersji 4.6.0, przycisk Cast zawsze pojawia się, gdy użytkownik jest połączony z Wi-Fi. Gdy urządzenia Cast są niedostępne, naciśnięcie przycisku Cast powoduje wyświetlenie okna z podpowiedziami dotyczącymi możliwych przyczyn niedostępności Cast, jak pokazano na poniższych makietach:

Aktualizowanie aplikacji na iOS 14
-
Dodaj do projektu pakiet Cast iOS SDK w wersji 4.8.4
Jeśli używasz CocoaPods, dodaj do projektu pakiet SDK w wersji 4.8.4 za pomocą polecenia
pod update.W przeciwnym razie, pobierz pakiet SDK ręcznie.
-
Dodaj
NSBonjourServicesdo plikuInfo.plistOkreśl
NSBonjourServicesw plikuInfo.plist, aby umożliwić wykrywanie sieci lokalnej w iOS 14.Aby wykrywanie urządzeń działało prawidłowo, musisz dodać zarówno
_googlecast._tcp, jak i_<your-app-id>._googlecast._tcpjako usługi.Identyfikator aplikacji to Twój identyfikator odbiornika, czyli ten sam identyfikator, który jest zdefiniowany w
GCKDiscoveryCriteria.Zaktualizuj poniższy przykład definicji
NSBonjourServicesi zastąp "ABCD1234" identyfikatorem aplikacji. -
Dodaj
NSLocalNetworkUsageDescriptiondo swojegoInfo.plistZdecydowanie zalecamy dostosowanie komunikatu wyświetlanego w oknie z prośbą o dostęp do sieci lokalnej przez dodanie ciągu uprawnień specyficznego dla aplikacji w pliku
Info.plistaplikacji dlaNSLocalNetworkUsageDescription, np. aby opisać wykrywanie Cast i inne usługi wykrywania, takie jak DIAL.Ten komunikat pojawi się w oknie dostępu do sieci lokalnej na iOS, jak pokazano na makiecie.
-
Ponownie opublikuj aplikację w Apple App Store
Zalecamy jak najszybsze ponowne opublikowanie aplikacji w wersji 4.8.4.
Dostosowania
Inicjowanie wykrywania urządzeń przesyłających
Domyślnie wykrywanie urządzeń przesyłających jest inicjowane, gdy użytkownik po raz pierwszy naciśnie przycisk Cast (GCKUICastButton). Jeśli użytkownik po raz pierwszy próbuje użyć aplikacji Cast w sieci lokalnej po przejściu na iOS 14, pojawi się nowe pełnoekranowe okno z informacjami o dostępie do sieci lokalnej, a następnie okno z prośbą o uprawnienia dostępu do sieci lokalnej na iOS.
Dostępny jest nowy przełącznik, który umożliwia kontrolowanie, kiedy rozpoczyna się wykrywanie urządzeń, oraz zachowania niektórych elementów interfejsu użytkownika:
startDiscoveryAfterFirstTapOnCastButton: BOOL(true/false)
Wartością domyślną jest true. Ten przełącznik ma zastosowanie tylko wtedy, gdy przełącznik
GCKCastOptions::disableDiscoveryAutostart
ma wartość false.
Jeśli ustawisz wartość true, wykrywanie urządzeń przesyłających rozpocznie się, gdy użytkownik po raz pierwszy naciśnie GCKUICastButton. Użytkownik zobaczy komunikat informacyjny wyjaśniający, dlaczego potrzebne są uprawnienia dostępu do sieci lokalnej. Po tym komunikacie wyświetli się komunikat LNA na iOS 14.
Wykrywanie urządzeń przesyłających rozpocznie się po potwierdzeniu komunikatu.
W kolejnych uruchomieniach aplikacji GCKUICastButton zawsze się wyświetla.
Jeśli ustawisz wartość false, wykrywanie urządzeń rozpocznie się na podstawie wartości
przełącznika
GCKCastOptions::disableDiscoveryAutostart.
Najczęstsze pytania
Co się stanie, jeśli ponownie opublikuję aplikację nadawczą Cast za pomocą pakietu Cast SDK w wersji 4.4.8 i Xcode 12?
Aplikacja może nie być w stanie wykryć urządzeń Cast w sieci lokalnej chyba że uzyskasz od Apple uprawnienia do korzystania z multicastu w sieci. Pamiętaj, że Apple nie będzie przyznawać uprawnień do korzystania z multicastu wyłącznie na potrzeby obsługi Cast. Jeśli planujesz tworzyć aplikację za pomocą Xcode 12, opublikuj ją z pakietem Cast 4.6.0.
Jeśli ponownie opublikuję aplikację z nowym pakietem Cast SDK, co zobaczą użytkownicy korzystający z iOS 13 lub starszego?
Będą nadal korzystać z aplikacji w taki sam sposób jak przed ponownym opublikowaniem aplikacji. Zmiany widoczne dla użytkowników są ograniczone do użytkowników korzystających z iOS 14.
Co muszę zrobić, aby zaktualizować aplikację po wydaniu nowej wersji pakietu Cast SDK?
- Zaktualizuj plik
Info.plistaplikacji, aby zawierał opis korzystania z sieci lokalnej. - Dodaj
NSBonjourServicesdo plikuInfo.plistaplikacji i podaj nazwy usług Bonjour dla Cast oraz identyfikator aplikacji. - Zaktualizuj aplikację nadawczą, aby korzystała z pakietu Cast SDK w wersji 4.6.0.
- Ponownie opublikuj aplikację w Apple App Store.
Dlaczego po przejściu na wersję 4.6.0 urządzenia przestały się wyświetlać w moim niestandardowym selektorze urządzeń ?
Jest to znany problem, który może wystąpić, jeśli używasz niestandardowego selektora urządzeń
zamiast standardowego. W pakiecie Cast SDK w wersji 4.4.8 i starszych
skanowanie urządzeń było automatyczne. Począwszy od wersji
4.6.0, musisz wyraźnie wywołać metodę startDiscovery
w klasie
GCKDiscoveryManager, aby rozpocząć wykrywanie urządzeń.
Powodem tej zmiany jest to, że okno z prośbą o uprawnienia dostępu do sieci lokalnej (LNA) pojawi się po pierwszym skanowaniu aplikacji. Może to spowodować wyświetlanie okien z prośbą o uprawnienia w losowych miejscach w aplikacji.
Deweloperzy, którzy tworzą niestandardowy selektor urządzeń dla swojej aplikacji, będą musieli wyświetlić jednorazowe pełnoekranowe okno przed pierwszym skanowaniem urządzeń w iOS 14.
iOS 13
W iOS 13 wprowadzono nowe wymagania dotyczące uprawnień, które mają wpływ na aplikacje korzystające z pakietu Google Cast SDK.
Począwszy od pakietu Google Cast SDK w wersji 4.4.3, dostępny jest dodatkowy pakiet SDK, który nie wymaga uprawnień Bluetooth®. Jest on dostępny zarówno w witrynie dla deweloperów, jak i w nowych
google-cast-sdk-no-bluetooth Cocoapods.
Podział aplikacji
Poniżej znajdziesz zestawienie w zależności od wersji pakietu iOS SDK, której obecnie używasz:
Aplikacje utworzone za pomocą pakietu iOS 12 SDK lub starszego
- Zalecane działanie. Skuteczność wykrywania urządzeń może się zmniejszyć w iOS 13, ale nadal będzie działać. Zdecydowanie zalecamy deweloperom przejście na pakiet Cast SDK w wersji 4.4.4, gdy będzie dostępny.
- iOS 13 będzie wyświetlać użytkownikom prośbę o przyznanie aplikacji uprawnień Bluetooth®.
Aplikacje utworzone za pomocą pakietu iOS 13 SDK
- Wymagane działanie: zaktualizuj pakiet Cast SDK do wersji 4.4.4. Jeśli użytkownik nie przyzna dostępu do lokalizacji, przycisk Cast może się nie wyświetlać. Aby zapewnić niezawodne przesyłanie w iOS 13, musisz przejść na pakiet Cast SDK w wersji 4.4.4.