Izin dan Penemuan iOS

Mulai iOS 14, sistem operasi akan menerapkan batasan baru dan izin yang memengaruhi pengalaman pengguna Cast. Ini juga akan mempengaruhi bagaimana Anda membangun SDK Cast ke dalam aplikasi. Agar aplikasi Anda mempertahankan fungsi Cast dengan iOS versi terbaru, Anda harus melakukan pembaruan untuk perubahan izin.

iOS 14

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

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

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

Aplikasi yang dibuat dengan versi Cast SDK yang menggunakan v4.4.8 atau versi sebelumnya akan dilanjutkan untuk bekerja selama mereka dibangun dengan Xcode 11.7 atau sebelumnya. Jika Anda membangun aplikasi untuk iOS 14 dengan Xcode 12 atau yang lebih baru, sebaiknya update ke versi Cast SDK v4.6.0 atau yang lebih baru untuk memastikan aplikasi Cast Anda 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 dengan mengikuti penyiapan manual. Rilis ini mencakup perubahan pada mekanisme penemuan yang mendasarinya, untuk memungkinkan aplikasi yang yang dibuat dengan Xcode 12 untuk menemukan perangkat Cast di jaringan. Tombol Cast harus sekarang selalu ditampilkan. Jika tidak ada perangkat yang tersedia saat pengguna mengetuk Transmisi , dialog akan ditampilkan untuk memberikan panduan tentang alasan perangkat tersedia, termasuk informasi tentang cara mengaktifkan kembali akses jaringan lokal izin akses.

Perubahan SDK Cast

Transmisi pertama kali

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

Alur izin akses jaringan lokal

Transmisi tidak tersedia

Mulai dari SDK pengirim iOS 4.6.0, tombol Cast selalu muncul saat pengguna terhubung ke Wi-Fi. Saat perangkat Transmisi tidak tersedia, mengetuk tombol Cast akan memunculkan dialog yang memberi pengguna petunjuk terkait kemungkinan alasan Cast tidak tersedia, seperti yang ditunjukkan pada tiruan di bawah:

Alur dengan Transmisi tidak tersedia

Mengupdate aplikasi di iOS 14

  1. Tambahkan Cast iOS SDK 4.8.3 ke project Anda

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

    Jika tidak, tarik SDK secara manual.

  2. Tambahkan NSBonjourServices ke Info.plist Anda

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

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

    AppID adalah ID penerima Anda, yang merupakan ID yang sama yang GCKDiscoveryCriteria.

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

    &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. Tambahkan NSLocalNetworkUsageDescription ke Info.plist

    Sebaiknya sesuaikan pesan yang ditampilkan di kolom Dialog jaringan dengan menambahkan string izin khusus aplikasi di File Info.plist untuk NSLocalNetworkUsageDescription seperti untuk mendeskripsikan Transmisi penemuan dan layanan penemuan lainnya, seperti DIAL.

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

    Pesan ini akan muncul sebagai bagian dari dialog Local Network Access iOS sebagai yang ditampilkan dalam tiruan.

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

    Sebaiknya rilis ulang aplikasi Anda menggunakan 4.8.3 karena sesegera mungkin.

Penyesuaian

Inisiasi penemuan perangkat transmisi

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

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. Penanda ini hanya berlaku bila penanda{i> <i}ini GCKCastOptions::disableDiscoveryAutostart disetel ke false.

Jika disetel ke true, penemuan perangkat Transmisi 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 akan selalu ditampilkan.

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

Pertanyaan umum (FAQ)

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

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

Jika saya merilis ulang aplikasi dengan Cast SDK baru, apakah pengguna saya akan menjalankan iOS 13 atau versi sebelumnya?

Mereka akan terus melihat pengalaman pengguna yang sama seperti sebelumnya merilis ulang aplikasi Anda. Perubahan yang terlihat oleh pengguna terbatas pada pengguna yang berjalan di iOS 14.

Apa yang harus saya lakukan untuk memperbarui aplikasi setelah versi Cast SDK dirilis?

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

Mengapa perangkat berhenti muncul di perangkat kustom saya Pemilih ini setelah saya upgrade ke 4.6.0?

Ini adalah masalah umum yang dapat terjadi jika Anda menggunakan perangkat kustom pemilih alih-alih pemilih perangkat standar. Dalam versi 4.4.8 SDK Cast dan versi sebelumnya, pemindaian perangkat dilakukan secara otomatis. Memulai dalam versi 4.6.0, Anda harus secara eksplisit memanggil startDiscovery metode tersebut pada GCKDiscoveryManager untuk memulai penemuan perangkat.

Alasan perubahan ini adalah karena Akses Jaringan Lokal (LNA) dialog izin akan muncul setelah aplikasi memindai baik. Hal ini dapat menyebabkan dialog izin muncul di tempat yang acak dalam aplikasi Anda.

Developer yang membuat pemilih perangkat kustom untuk aplikasi mereka akan diharapkan untuk memberikan interstisial satu kali sebelum mengintimidasi perangkat memindai data untuk pertama kalinya di iOS 14.

iOS 13

Pada iOS 13, persyaratan izin baru diperkenalkan, yang berdampak menggunakan Google Cast SDK.

Mulai dari Google Cast SDK v4.4.3, tersedia SDK tambahan yang melakukan tidak memerlukan izin Bluetooth®. Fitur ini tersedia di developer dan di google-cast-sdk-no-bluetooth Kakaopod.

Pengelompokan aplikasi

Berikut ini perincian bergantung pada versi SDK iOS yang saat ini Anda gunakan menggunakan:

Aplikasi yang dibuat dengan iOS 12 SDK atau versi sebelumnya

  • Tindakan yang Disarankan. Performa penemuan perangkat dapat menurun saat berjalan di iOS 13, tetapi masih akan berfungsi. Kami sangat menyarankan developer mengupgrade ke Cast SDK v4.4.4 jika tersedia.
  • iOS 13 akan meminta pengguna untuk memberikan izin Bluetooth® ke aplikasi.

Aplikasi yang dibangun dengan iOS 13 SDK

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