Izin dan Penemuan iOS

Mulai iOS 14, sistem operasi akan menerapkan pembatasan dan izin baru yang memengaruhi pengalaman pengguna Cast. Perubahan ini juga akan memengaruhi cara Anda mem-build SDK Cast ke dalam aplikasi. Agar aplikasi dapat mempertahankan fungsi Cast dengan versi iOS terbaru, Anda harus melakukan update untuk menangani perubahan izin ini.

iOS 14

Developer harus mengupdate aplikasi pengirim Cast iOS ke Google Cast SDK v4.6.0 atau yang lebih baru. Versi ini menyediakan dukungan untuk iOS 14 dan persyaratannya.

Mulai iOS 14, aplikasi yang memindai perangkat di jaringan lokal kini akan meminta pengguna yang memiliki dialog izin satu kali untuk menemukan dan terhubung ke perangkat jaringan lokal. Platform Cast menggunakan jaringan lokal untuk menemukan dan mengontrol perangkat Transmisi, sehingga jika pengguna menolak izin, mereka tidak akan dapat melakukan transmisi.

Untuk meningkatkan pengalaman pengguna, kami membuat beberapa modifikasi UX pada SDK untuk aplikasi yang menggunakan pemilih perangkat standar. Modifikasi UX ini untuk memperjelas pengguna mengapa izin akses jaringan lokal diperlukan, serta cara mengaktifkan transmisi jika akses perangkat jaringan lokal telah dinonaktifkan.

Aplikasi yang dibangun dengan versi Cast SDK menggunakan v4.4.8 atau yang lebih lama akan tetap berfungsi selama dibuat dengan Xcode 11.7 atau yang lebih lama. Jika Anda membuat aplikasi untuk iOS 14 dengan Xcode 12 atau yang lebih baru, sebaiknya update ke SDK Cast v4.6.0 atau yang lebih baru untuk memastikan aplikasi Cast akan terus berfungsi dengan baik.

Cast iOS SDK v4.6.0 atau yang lebih baru dapat didownload dengan CocoaPods dengan mengikuti penyiapan CocoaPods atau secara manual dengan mengikuti penyiapan manual. Rilis ini mencakup perubahan pada mekanisme penemuan yang mendasarinya untuk memungkinkan aplikasi yang di-build dengan Xcode 12 menemukan perangkat Transmisi di jaringan. Tombol Cast kini akan selalu ditampilkan. Jika tidak ada perangkat yang tersedia saat pengguna mengetuk tombol Transmisi, dialog akan ditampilkan untuk memberikan panduan tentang alasan perangkat tidak tersedia, termasuk informasi tentang cara mengaktifkan kembali izin akses jaringan lokal.

Perubahan SDK Cast

Transmisi pertama kali

Saat pertama kali pengguna mencoba melakukan Transmisi, dialog interstisial akses jaringan lokal (LNA) akan muncul yang menjelaskan alasan akses jaringan lokal diperlukan, diikuti dengan permintaan izin akses jaringan lokal iOS yang disediakan Apple. Tiruan di bawah ini menggambarkan alurnya:

Alur izin akses jaringan lokal

Transmisi tidak tersedia

Mulai SDK pengirim iOS 4.6.0, tombol Cast selalu muncul saat pengguna terhubung ke Wi-Fi. Jika Perangkat transmisi tidak tersedia, mengetuk tombol Cast akan memunculkan dialog yang memberikan petunjuk kepada pengguna tentang kemungkinan alasan Cast tidak tersedia, seperti yang ditunjukkan pada tiruan di bawah ini:

Flow dengan Cast tidak tersedia

Mengupdate aplikasi di iOS 14

  1. Menambahkan Cast iOS SDK 4.8.1 ke project

    Jika menggunakan CocoaPods, gunakan pod update untuk menambahkan SDK 4.8.1 ke project Anda.

    Jika tidak, ambil SDK secara manual.

  2. Tambahkan NSBonjourServices ke Info.plist Anda

    Tentukan NSBonjourServices di Info.plist Anda agar penemuan jaringan lokal berhasil di iOS 14.

    Anda harus menambahkan _googlecast._tcp dan _<your-app-id>._googlecast._tcp sebagai layanan agar penemuan perangkat berfungsi dengan baik.

    appID adalah ID penerima, yang merupakan ID yang sama dengan yang ditentukan dalam GCKDiscoveryCriteria Anda.

    Perbarui contoh definisi NSBonjourServices berikut dan ganti "ABCD1234" dengan appID Anda.

    <key>NSBonjourServices</key>
    <array>
      <string>_googlecast._tcp</string>
      <string>_ABCD1234._googlecast._tcp</string>
    </array>
  3. Tambahkan NSLocalNetworkUsageDescription ke Info.plist Anda

    Sebaiknya sesuaikan pesan yang ditampilkan di prompt Jaringan Lokal dengan menambahkan string izin khusus aplikasi di file Info.plist aplikasi Anda untuk NSLocalNetworkUsageDescription, misalnya untuk mendeskripsikan penemuan Transmisi dan layanan penemuan lainnya, seperti DIAL.

    <key>NSLocalNetworkUsageDescription</key>
    <string>${PRODUCT_NAME} menggunakan jaringan lokal untuk menemukan perangkat yang kompatibel untuk Cast di jaringan
    Wi-Fi Anda.</string>

    Pesan ini akan muncul sebagai bagian dari dialog Akses Jaringan Lokal iOS seperti yang ditampilkan di tiruan.

    Gambar dialog izin Akses Jaringan Lokal Cast
  4. Merilis ulang aplikasi ke Apple App Store

    Sebaiknya Anda juga merilis ulang aplikasi menggunakan 4.8.1 sesegera mungkin.

Penyesuaian

Inisiasi penemuan perangkat Cast

Secara default, penemuan perangkat Cast dimulai saat pengguna pertama kali mengetuk tombol Cast (GCKUICastButton). Jika ini adalah pertama kalinya pengguna mencoba menggunakan aplikasi Cast di jaringan lokal setelah mengupgrade ke iOS 14, interstisial LNA baru akan muncul, diikuti dengan dialog izin Akses Jaringan Lokal iOS.

Tanda baru tersedia untuk memungkinkan Anda mengontrol kapan penemuan perangkat dimulai dan perilaku elemen UX tertentu:

startDiscoveryAfterFirstTapOnCastButton: BOOL(true/false)

Nilai default-nya adalah true. Tanda ini hanya berlaku jika tanda GCKCastOptions::disableDiscoveryAutostart ditetapkan ke false.

Jika disetel ke true, penemuan perangkat Transmisi akan dimulai saat pengguna mengetuk GCKUICastButton untuk pertama kalinya. Pesan informasi akan ditampilkan kepada pengguna yang memberi tahu mereka mengapa izin jaringan lokal diperlukan. Setelah pesan tersebut, pesan LNA iOS 14 akan ditampilkan. Penemuan perangkat transmisi dimulai setelah pesan dikonfirmasi.

Dalam peluncuran Aplikasi berikutnya, GCKUICastButton selalu ditampilkan.

Jika ditetapkan ke false, penemuan perangkat akan dimulai berdasarkan nilai flag GCKCastOptions::disableDiscoveryAutostart.

Pertanyaan umum (FAQ)

Apa yang terjadi jika saya merilis ulang aplikasi pengirim Cast dengan Cast SDK v4.4.8 dan Xcode 12?

Aplikasi Anda mungkin tidak dapat menemukan Perangkat transmisi di jaringan lokal, kecuali jika Anda telah memperoleh hak multicast jaringan dari Apple. Perlu diketahui bahwa Apple tidak akan memberikan hak multicast hanya untuk tujuan mendukung Transmisi. Jika berencana membangun aplikasi dengan Xcode 12, Anda harus merilis aplikasi dengan Cast 4.6.0.

Jika saya merilis ulang aplikasi dengan Cast SDK baru, apa yang akan dijalankan pengguna di iOS 13 atau versi yang lebih lama?

Pengguna akan terus melihat pengalaman pengguna yang sama seperti sebelum merilis ulang aplikasi Anda. Perubahan yang terlihat oleh pengguna terbatas untuk pengguna yang menggunakan iOS 14.

Apa yang perlu saya lakukan untuk mengupdate aplikasi setelah versi baru Cast SDK dirilis?

  • Update Info.plist aplikasi Anda untuk menyertakan deskripsi penggunaan jaringan lokal.
  • Tambahkan NSBonjourServices ke Info.plist aplikasi dan berikan nama layanan Bonjour untuk Cast dan ID aplikasi Anda.
  • Upgrade aplikasi pengirim untuk menggunakan Cast SDK 4.6.0.
  • Rilis ulang aplikasi Anda ke Apple App Store.

Mengapa perangkat berhenti muncul di alat pilih perangkat kustom saya setelah saya mengupgrade ke versi 4.6.0?

Ini adalah masalah umum yang dapat terjadi jika Anda menggunakan alat pilih perangkat kustom, bukan alat pilih perangkat standar. Pada Cast SDK versi 4.4.8 dan yang lebih lama, pemindaian perangkat dilakukan secara otomatis. Mulai versi 4.6.0, Anda harus secara eksplisit memanggil metode startDiscovery pada class GCKDiscoveryManager untuk memulai penemuan perangkat.

Alasan perubahan ini adalah karena permintaan izin Akses Jaringan Lokal (LNA) akan muncul setelah aplikasi melakukan pemindaian untuk pertama kalinya. Hal ini dapat menyebabkan dialog izin muncul di tempat acak dalam aplikasi Anda.

Developer yang membuat alat pilih perangkat kustom untuk aplikasinya diharapkan menyediakan interstisial satu kali sebelum menginisiasi pemindaian perangkat untuk pertama kalinya di iOS 14.

iOS 13

Dengan iOS 13, persyaratan izin baru diperkenalkan yang memengaruhi aplikasi yang menggunakan SDK Google Cast.

Mulai Google Cast SDK v4.4.3, tersedia SDK tambahan tanpa izin Bluetooth®. Ini tersedia di situs developer dan di Cocoapods google-cast-sdk-no-bluetooth baru.

Perincian aplikasi

Berikut adalah perinciannya bergantung pada versi iOS SDK yang saat ini Anda gunakan:

Aplikasi yang dibuat dengan SDK iOS 12 atau yang lebih lama

  • Tindakan Disarankan. Performa penemuan perangkat dapat menurun saat dijalankan di iOS 13, tetapi akan tetap berfungsi. Sebaiknya developer mengupgrade ke Cast SDK v4.4.4 jika tersedia.
  • iOS 13 akan meminta pengguna untuk memberikan izin Bluetooth® ke aplikasi.

Aplikasi yang dibuat dengan SDK iOS 13

  • Tindakan Diperlukan: Update ke SDK Cast 4.4.4 atau tombol transmisi mungkin tidak muncul jika pengguna tidak memberikan izin akses lokasi. Mengupgrade ke SDK Cast 4.4.4 diperlukan untuk memastikan pengalaman transmisi yang andal di iOS 13.