Uprawnienia i odkrywanie w iOS

Od wersji iOS 14 system operacyjny będzie wymuszał nowe ograniczenia uprawnień wpływające na korzystanie z funkcji Cast. Wpłynie to także na sposób zaimplementuj w swojej aplikacji pakiet SDK Cast. Aby aplikacja zachowała funkcję przesyłania z najnowszymi wersjami iOS musisz wprowadzić aktualizacje, które pozwolą zmian uprawnień.

iOS 14

Deweloperzy powinni zaktualizować swoje aplikacje przesyłające dane Cast na iOS do pakietu Google Cast SDK wersji 4.6.0 lub nowszej. Te wersje obsługują system iOS 14 i jego wymagania.

Począwszy od systemu iOS 14, aplikacje, które skanują urządzenia w sieci lokalnej będzie teraz wyświetlać użytkownikom prośbę w oknie z prośbą o jednorazowe uprawnienia do urządzenia z siecią lokalną. Platforma Cast wykorzystuje sieć lokalną do wykrywania sterować urządzeniami przesyłającymi, więc jeśli użytkownik odmówi zgody, nie będzie mógł przesyłać.

Aby poprawić wrażenia użytkowników, wprowadzamy w pakiecie SDK pewne modyfikacje UX. dla tych aplikacji, które korzystają ze standardowego selektora urządzenia. Te zmiany UX użytkownicy będą bardziej świadomi, do czego potrzebne są uprawnienia dostępu do sieci lokalnej, oraz jak włączyć przesyłanie, jeśli dostęp do sieci lokalnej był wyłączono.

Aplikacje utworzone za pomocą pakietu Cast SDK w wersji 4.4.8 lub starszej będą nadal działać. działają, jeśli tylko zostały opracowane z użyciem Xcode 11.7 lub starszego. Jeśli jesteś na iOS 14 z kodem Xcode 12 lub nowszym, Pakiet SDK w wersji 4.6.0 lub nowszej, by mieć pewność, że aplikacja Cast będzie nadal działać prawidłowo.

Pakiet Cast SDK na iOS w wersji 4.6.0 lub nowszej możesz pobrać za pomocą CocoaPods. Aby to zrobić, wykonaj te czynności: konfigurację CocoaPods lub ręcznie przez po konfiguracji ręcznej. Ta wersja zawiera zmiany w podstawowym mechanizmie wykrywania, które pozwalają na dostęp do aplikacji, które są Xcode 12 pozwala wyszukiwać urządzenia przesyłające w sieci. Przycisk Cast powinien Teraz zawsze są wyświetlane. Jeśli po kliknięciu przycisku przesyłania nie są dostępne żadne urządzenia przycisk, wyświetli się okno ze wskazówkami, dlaczego urządzenia łącznie z informacjami o tym, jak ponownie włączyć dostęp przez sieć lokalną uprawnienia.

Zmiany w pakiecie Cast SDK

Pierwsze przesyłanie

Przy pierwszej próbie przesyłania treści przez sieć lokalną (LNA) pojawi się okno pełnoekranowe z wyjaśnieniem, dlaczego dostęp do sieci lokalnej jest a następnie przyznane przez Apple uprawnienia dostępu do sieci lokalnej na iOS. . Poniższe przykłady obrazują ten proces:

Przepływ uprawnień dostępu do sieci lokalnej

Przesyłanie niedostępne

Począwszy od pakietu SDK nadawcy na iOS w wersji 4.6.0 przycisk Cast jest zawsze wyświetlany, gdy użytkownik Urządzenie jest połączone z Wi-Fi. Gdy urządzenia przesyłające są niedostępne, dotknięcie przycisku Cast otwiera okno o możliwych przyczynach niedostępności przesyłania, tak jak na ilustracjach poniżej:

Proces z obsługą przesyłania jest niedostępny

Aktualizowanie aplikacji na urządzeniach z iOS 14

  1. Dodawanie do projektu pakietu SDK Cast na iOS 4.8.3

    Jeśli korzystasz z CocoaPods, dodaj pakiet SDK 4.8.3 do projektu za pomocą pod update.

    W przeciwnym razie ręcznie pobrać pakiet SDK.

  2. Dodaj: NSBonjourServices do: Info.plist

    Podaj NSBonjourServices w polu Info.plist na pozwala na skuteczne wykrywanie sieci lokalnej na urządzeniach z iOS 14.

    Musisz dodać zarówno _googlecast._tcp, jak i _<your-app-id>._googlecast._tcp jako usługi dla urządzenia ich prawidłowe działanie.

    Identyfikator appID to Twój odbiorca ID, czyli ten sam identyfikator zdefiniowany w GCKDiscoveryCriteria

    Zaktualizuj definicję iNSBonjourServicesponiższy przykład zastąp „ABCD1234” z identyfikatorem aplikacji.

    &lt;key&gt;NSBonjourServices&lt;/key&gt;
    &lt;array&gt;
      &lt;string&gt;_googlecast._tcp&lt;/string&gt;
      &lt;string&gt;_ABCD1234._googlecast._tcp&lt;/string&gt;
    &lt;/array&gt;
  3. Dodaj NSLocalNetworkUsageDescription do Info.plist

    Zdecydowanie zalecamy dostosowanie komunikatu wyświetlanego w sekcji Prośba o dostęp do sieci przez dodanie ciągu uprawnień aplikacji w polu Info.plist dla NSLocalNetworkUsageDescription, np. aby opisać przesyłanie. wykrywania i innych usług, takich jak DIAL.

    &lt;key&gt;NSLocalNetworkUsageDescription&lt;/key&gt;
    <string>${PRODUCT_NAME} używa sieci lokalnej do wykrywania w Twojej sieci Wi-Fi urządzeń obsługujących Cast
    sieć.</string>

    Ten komunikat będzie widoczny w oknie Dostęp do sieci lokalnej w iOS jako widoczne na przykładzie.

    Obraz okna uprawnień dostępu do sieci lokalnej przesyłania
  4. Ponowne publikowanie aplikacji w Apple App Store

    Zalecamy też ponowne opublikowanie aplikacji przy użyciu wersji 4.8.3 jako jak najszybciej.

Dostosowania

Inicjowanie wykrywania urządzenia przesyłającego

Domyślnie wykrywanie urządzenia przesyłającego jest inicjowane za pierwszym razem, gdy użytkownik kliknie przycisk. przycisk Cast (GCKUICastButton). Jeśli użytkownik Próbowano użyć aplikacji Cast w sieci lokalnej po aktualizacji do iOS 14, pojawi się nowa reklama pełnoekranowa LNA, a po niej sieć lokalna iOS Okno uprawnień dostępu.

Dostępna jest nowa flaga, która pozwala określić, kiedy ma się rozpocząć wykrywanie urządzeń i zachowania niektórych jego elementów:

startDiscoveryAfterFirstTapOnCastButton: BOOL(true/false)

Wartością domyślną jest true. Ta flaga ma zastosowanie tylko wtedy, gdy flaga GCKCastOptions::disableDiscoveryAutostart jest ustawiona na false.

Jeśli ma wartość true, wykrywanie urządzeń przesyłających rozpoczyna się, gdy użytkownik kliknie GCKUICastButton. Pojawi się komunikat wyświetlane użytkownikowi, informując go, dlaczego uprawnienia do sieci lokalnej niezbędną. Później wyświetli się komunikat LNA systemu iOS 14. Wykrywanie urządzeń przesyłających rozpocznie się po potwierdzeniu wiadomości.

Przy kolejnych wersjach aplikacji GCKUICastButton zawsze wyświetla się.

Jeśli zasada ma wartość false, wykrywanie urządzeń rozpocznie się na podstawie wartości flaga GCKCastOptions::disableDiscoveryAutostart

Najczęstsze pytania

Co się stanie, jeśli ponownie udostępnię Aplikacja przesyłająca z pakietem Cast SDK w wersji 4.4.8 i Xcode 12?

Aplikacja może nie wykrywać urządzeń przesyłających w sieci lokalnej chyba że masz od Apple upoważnienie do korzystania z multicastów w sieci. Pamiętaj, że Apple nie przyzna uprawnień do transmisji grupowych wyłącznie w przypadku wyłącznie na potrzeby przesyłania. Jeśli planujesz kompilować przy użyciu Xcode 12, opublikuj aplikację dzięki Cast 4.6.0.

Jeśli ponownie opublikuję aplikację z nowym pakietem Cast SDK, Czy moi użytkownicy będą korzystać z iOS w wersji 13 lub starszej?

Użytkownicy będą mogli korzystać z tych samych funkcji co wcześniej. ponowne udostępnienie aplikacji. Zmiany widoczne dla użytkowników są ograniczone do użytkowników który działa w systemie iOS 14.

Co muszę zrobić, aby zaktualizować aplikację, gdy nowa jest już dostępna wersja pakietu Cast SDK?

  • Zaktualizuj pole Info.plist w aplikacji, aby uwzględnić sieć lokalną opisu użycia.
  • Dodaj NSBonjourServices do tych pól w swojej aplikacji Info.plist i podaj nazwy usług Bonjour dla Cast i identyfikator aplikacji.
  • Uaktualnij aplikację nadawcy, by używała pakietu Cast SDK 4.6.0.
  • Ponownie opublikuj aplikację w sklepie Apple App Store.

Dlaczego urządzenia przestały się wyświetlać na moim urządzeniu niestandardowym po uaktualnieniu do wersji 4.6.0.

To znany problem, który może wystąpić, jeśli korzystasz z urządzenia niestandardowego zamiast standardowego selektora urządzenia. W wersji 4.4.8 Pakiet Cast SDK i wcześniejsze skanowanie urządzeń przebiegało automatycznie. Początek w wersji 4.6.0, musisz wyraźnie wywołać funkcję startDiscovery na GCKDiscoveryManager, aby zainicjować wykrywanie urządzenia.

Przyczyną tej zmiany jest to, że dostęp przez sieć lokalną prośba o przyznanie uprawnień pojawi się po pierwszym przeskanowaniu aplikacji obecnie się znajdujesz. Może to spowodować wyświetlanie okien uprawnień w losowych miejscach. w aplikacji.

Deweloperzy, którzy utworzą niestandardowy selektor urządzeń dla swojej aplikacji, ma wyświetlić jednorazową reklamę pełnoekranową przed zainicjowaniem urządzenia w systemie iOS 14.

iOS 13

W iOS 13 wprowadziliśmy nowe wymagania dotyczące uprawnień, które wpływają przez pakiet SDK Google Cast.

Począwszy od Google Cast SDK w wersji 4.4.3, dostępny jest dodatkowy pakiet SDK, który nie wymaga uprawnień Bluetooth®. Ta funkcja jest dostępna zarówno na stronie deweloperskiej w witrynie i w nowej google-cast-sdk-no-bluetooth Cocoapod.

Zestawienie aplikacji

Oto zestawienie według wersji pakietu SDK na iOS, którego aktualnie używasz przy użyciu:

aplikacje stworzone za pomocą pakietu SDK na system iOS 12 lub starszego,

  • Zalecane działanie. Wydajność wykrywania urządzeń może się zmniejszyć, ma system iOS 13, ale nadal działa. Zdecydowanie zalecamy deweloperzy przechodzą z pakietu Cast SDK na wersję 4.4.4, gdy tylko będzie to możliwe.
  • iOS 13 poprosi użytkowników o przyznanie aplikacji uprawnień dotyczących Bluetooth®.

Aplikacje korzystające z pakietu SDK na iOS 13

  • Wymagane działanie: zaktualizuj pakiet SDK Cast do wersji 4.4.4 – w przeciwnym razie przycisk przesyłania może nie działać pojawiają się, jeśli użytkownik nie udzielił dostępu do lokalizacji. Przechodzenie na pakiet SDK Cast Wersja 4.4.4 jest niezbędna do niezawodnego przesyłania na iOS 13.