Począwszy od iOS 14 system operacyjny będzie nakładać nowe ograniczenia i wymagania dotyczące uprawnień, które wpływają na komfort użytkowników podczas korzystania z Cast. Zmiana ta wpłynie też na sposób kompilowania pakietu SDK Cast w aplikacji. Aby aplikacja zachowała funkcjonalność Cast w najnowszych wersjach iOS, musisz wprowadzić zmiany, które uwzględnią te zmiany uprawnień.
iOS 14
Deweloperzy powinni zaktualizować swoje aplikacje przesyłające treści na Google Cast do pakietu SDK Google Cast w wersji 4.6.0 lub nowszej. Te wersje obsługują iOS 14 i jego wymagania.
Począwszy od systemu iOS 14 aplikacje, które skanują sieć lokalną w celu znalezienia urządzeń, będą wyświetlać użytkownikom okno jednorazowego udzielenia uprawnień, aby umożliwić im znalezienie urządzeń w sieci lokalnej i połączenie się z nimi. Platforma Cast używa sieci lokalnej do wykrywania i sterowania urządzeniami Cast, więc jeśli użytkownik odmówi udzielenia uprawnień, nie będzie mógł korzystać z Casta.
Aby poprawić wrażenia użytkowników, wprowadzamy pewne zmiany w interfejsie SDK w przypadku aplikacji, które korzystają ze standardowego selektora urządzeń. Te zmiany w UX sprawiają, że użytkownicy łatwiej zrozumieją, dlaczego potrzebne są uprawnienia dostępu do sieci lokalnej, a także jak włączyć przesyłanie treści, jeśli dostęp do sieci lokalnej urządzenia został wyłączony.
Aplikacje utworzone przy użyciu wersji pakietu SDK Cast w wersji 4.4.8 lub starszej będą nadal działać, o ile zostały utworzone przy użyciu Xcode 11.7 lub starszej wersji. Jeśli kompilujesz aplikację na iOS 14 za pomocą Xcode 12 lub nowszej wersji, zalecamy zaktualizowanie pakietu SDK Cast do wersji 4.6.0 lub nowszej, aby mieć pewność, że aplikacja Cast będzie nadal prawidłowo działać.
Pakiet SDK Cast na iOS w wersji 4.6.0 lub nowszej można pobrać za pomocą CocoaPods, wykonując instrukcje konfiguracji CocoaPods lub ręcznie, postępując zgodnie z instrukcjami konfiguracji ręcznej. Ta wersja zawiera zmiany w podstawowym mechanizmie wykrywania, aby umożliwić aplikacjom utworzonym za pomocą Xcode 12 znajdowanie urządzeń Cast w sieci. Przycisk przesyłania powinien być teraz zawsze widoczny. Jeśli po kliknięciu przycisku Cast nie ma dostępnych urządzeń, wyświetli się okno z informacjami o przyczynach, dla których urządzenia mogą być niedostępne, oraz z instrukcjami ponownego włączania uprawnień dostępu do sieci lokalnej.
Zmiany w pakiecie Cast SDK
Przesyłanie po raz pierwszy
Gdy użytkownik po raz pierwszy spróbuje przesłać treści, pojawi się wyskakujące okienko z wyjaśnieniem, dlaczego potrzebny jest dostęp do sieci lokalnej, a potem prośba o dostęp do sieci lokalnej na urządzeniu z iOS. Poniżej przedstawiamy mockupy ilustrujące ten proces:
Przesyłanie jest niedostępne
Od wersji pakietu Android sender SDK 4.6.0 przycisk Cast zawsze pojawia się, gdy użytkownik jest połączony z siecią Wi-Fi. Gdy urządzenia Cast są niedostępne, kliknięcie przycisku Cast spowoduje wyświetlenie okna z podpowiedziami dotyczącymi możliwych przyczyn niedostępności Cast, jak pokazano na mockupach poniżej:
Aktualizowanie aplikacji na iOS 14
-
Dodaj do projektu pakiet SDK przesyłania treści na iOS w wersji 4.8.3
Jeśli używasz CocoaPods, użyj polecenia
pod update
, aby dodać pakiet SDK 4.8.3 do projektu.W przeciwnym razie pobierz pakiet SDK ręcznie.
-
Dodawanie grupy odbiorców
NSBonjourServices
do listyInfo.plist
W pliku
Info.plist
podaj wartośćNSBonjourServices
, aby umożliwić wykrywanie w sieci lokalnej w systemie iOS 14.Aby usługa wykrywania urządzeń działała prawidłowo, musisz dodać jako usługi zarówno
_googlecast._tcp
, jak i_<your-app-id>._googlecast._tcp
.Identyfikator aplikacji to identyfikator odbiorcy, który jest taki sam jak identyfikator zdefiniowany w Twoim
GCKDiscoveryCriteria
.Zaktualizuj definicję
NSBonjourServices
z tego przykładu i zastąp „ABCD1234” identyfikatorem aplikacji. -
Dodaj
NSLocalNetworkUsageDescription
doInfo.plist
Zalecamy dostosowanie komunikatu wyświetlanego w prośbie dotyczącej sieci lokalnej przez dodanie do pliku
Info.plist
aplikacji przeznaczonej do obsługiNSLocalNetworkUsageDescription
ciągu znaków uprawnień specyficznych dla aplikacji, np. w celu opisania usługi Cast discovery lub innych usług discovery, takich jak DIAL.Ta wiadomość będzie wyświetlana w ramach okna dostępu przez sieć lokalną w iOS, jak pokazano na mockupie.
-
Ponowne opublikowanie aplikacji w Apple App Store
Zalecamy też jak najszybsze ponowne opublikowanie aplikacji z wersją 4.8.3.
Dostosowania
Inicjowanie wykrywania urządzeń przesyłających
Domyślnie wykrywanie urządzeń Cast jest inicjowane po tym, jak użytkownik kliknie przycisk Cast (GCKUICastButton
). Jeśli po przejściu na iOS 14 użytkownik po raz pierwszy spróbuje użyć aplikacji Cast w sieci lokalnej, pojawi się nowy ekran przejściowy LNA, a potem okno z uprawnieniami dostępu do sieci lokalnej w iOS.
Dostępna jest nowa flaga, która umożliwia kontrolowanie, kiedy rozpoczyna się wykrywanie urządzenia oraz działanie niektórych elementów UX:
startDiscoveryAfterFirstTapOnCastButton: BOOL(true/false)
Wartością domyślną jest true
. Ta flaga jest stosowana tylko wtedy, gdy flaga GCKCastOptions::disableDiscoveryAutostart
ma wartość false
.
Jeśli ustawisz wartość true
, wykrywanie urządzeń przesyłających rozpocznie się, gdy użytkownik po raz pierwszy kliknie przycisk GCKUICastButton
. Użytkownik zobaczy komunikat informacyjny z wyjaśnieniem, dlaczego potrzebne są uprawnienia do sieci lokalnej. Po tej wiadomości wyświetli się komunikat LNA na iOS 14.
Wykrywanie urządzenia przesyłającego rozpoczyna się po potwierdzeniu wiadomości.
W kolejnych wersjach aplikacji zawsze wyświetla się GCKUICastButton
.
Jeśli ustawisz wartość false
, wykrywanie urządzeń rozpocznie się na podstawie wartości flagi GCKCastOptions::disableDiscoveryAutostart
.
Najczęstsze pytania
Co się stanie, jeśli ponownie opublikuję aplikację przesyłającą treści na Chromecasta za pomocą pakietu SDK przesyłania treści na Chromecasta w wersji 4.4.8 i Xcode 12?
Aplikacja może nie wykrywać urządzeń Cast w sieci lokalnej, chyba że masz uprawnienia do multicastu sieciowego od Apple. Pamiętaj, że Apple nie przyzna uprawnień do transmisji strumieniowej tylko w celu obsługi Cast. Jeśli planujesz kompilację za pomocą Xcode 12, musisz opublikować aplikację z Cast 4.6.0.
Jeśli ponownie opublikuję aplikację z nowym pakietem SDK Cast, jak będzie ona działać na urządzeniach z systemem iOS 13 lub starszym?
Użytkownicy nadal będą widzieć te same funkcje, które były dostępne przed ponownym udostępnieniem 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 SDK Cast?
- Zaktualizuj plik
Info.plist
aplikacji, aby zawierał opis korzystania z sieci lokalnej. - Dodaj
NSBonjourServices
doInfo.plist
w aplikacji i podaj nazwy usług Bonjour dla Cast oraz identyfikator aplikacji. - Zaktualizuj aplikację nadawcy, aby używała pakietu SDK Cast w wersji 4.6.0.
- Ponownie opublikuj aplikację w sklepie z aplikacjami Apple.
Dlaczego po przejściu na wersję 4.6.0 urządzenia przestały się wyświetlać w sekcji niestandardowych urządzeń?
Jest to znany problem, który może wystąpić, jeśli zamiast standardowego selektora urządzeń używasz niestandardowego selektora urządzeń. W wersji 4.4.8 pakietu SDK Cast i starszych skanowanie urządzenia było automatyczne. Począwszy od wersji
4.6.0, aby zainicjować wykrywanie urządzeń, musisz wyraźnie wywołać metodę startDiscovery
w klasie
GCKDiscoveryManager
.
Ta zmiana jest spowodowana tym, że prośba o dostęp do lokalnych sieci będzie wyświetlana po pierwszym skanowaniu przez aplikację. Może to spowodować wyświetlanie okien z prośbami o przyznanie uprawnień w losowych miejscach w aplikacji.
Deweloperzy, którzy tworzą niestandardowy selektor urządzeń do swojej aplikacji, będą musieli wyświetlić jednorazowy baner reklamowy przed rozpoczęciem skanowania urządzenia po raz pierwszy 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.
Od wersji pakietu Google Cast SDK 4.4.3 dostępny jest dodatkowy pakiet SDK, który nie wymaga uprawnień Bluetooth®. Jest ona dostępna na stronie dla deweloperów oraz w nowej wersji Cocoapods google-cast-sdk-no-bluetooth
.
Podział według aplikacji
Oto zestawienie w zależności od wersji pakietu iOS SDK, z której obecnie korzystasz:
Aplikacje utworzone z pakietem SDK iOS 12 lub starszym
- Zalecane działanie. Wydajność wykrywania urządzeń może się zmniejszyć, gdy korzystasz z iOS 13, ale funkcja nadal będzie działać. Zalecamy, aby deweloperzy zaktualizowali pakiet SDK Cast do wersji 4.4.4, gdy będzie ona dostępna.
- W iOS 13 użytkownicy będą musieli przyznać aplikacji uprawnienia Bluetooth®.
Aplikacje utworzone za pomocą pakietu SDK iOS 13
- Wymagane działanie: zaktualizuj pakiet Cast SDK do wersji 4.4.4, ponieważ w przeciwnym razie przycisk przesyłania może się nie wyświetlać, jeśli użytkownik nie udzieli uprawnień dostępu do lokalizacji. Aby zapewnić niezawodne przesyłanie treści w systemie iOS 13, musisz zaktualizować pakiet Cast SDK do wersji 4.4.4.