Izin dan Penemuan iOS

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

iOS 14

Developer harus mengupdate 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 kini akan meminta pengguna dengan dialog izin satu kali untuk menemukan dan terhubung ke 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 melakukan beberapa modifikasi UX pada SDK untuk aplikasi yang menggunakan pemilih perangkat standar. Modifikasi UX ini membuat pengguna lebih memahami alasan izin akses jaringan lokal diperlukan, serta cara mengaktifkan transmisi jika akses perangkat jaringan lokal telah dinonaktifkan.

Aplikasi yang di-build dengan versi Cast SDK menggunakan v4.4.8 atau yang lebih lama akan terus berfungsi selama aplikasi tersebut di-build dengan Xcode 11.7 atau yang lebih lama. Jika Anda mem-build untuk iOS 14 dengan Xcode 12 atau yang lebih baru, sebaiknya update ke 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 mengikuti penyiapan manual. Rilis ini menyertakan perubahan pada mekanisme penemuan yang mendasarinya untuk memungkinkan aplikasi yang di-build dengan Xcode 12 menemukan perangkat Cast di jaringan. Tombol Transmisikan sekarang akan selalu ditampilkan. Jika tidak ada perangkat yang tersedia saat pengguna mengetuk tombol Cast, dialog akan ditampilkan yang memberikan panduan tentang alasan perangkat mungkin tidak tersedia, termasuk informasi tentang cara mengaktifkan kembali izin akses jaringan lokal.

Perubahan Cast SDK

Transmisi pertama kali

Saat pertama kali pengguna mencoba Mentransmisikan, dialog interstisial akses jaringan lokal (LNA) akan muncul yang menjelaskan alasan akses jaringan lokal diperlukan, diikuti dengan perintah izin akses jaringan lokal iOS yang disediakan Apple. Mock di bawah ini mengilustrasikan alur:

Alur izin akses jaringan lokal

Transmisi tidak tersedia

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

Alur dengan Transmisi tidak tersedia

Mengupdate aplikasi di iOS 14

  1. Menambahkan 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, ambil SDK secara manual.

  2. Tambahkan NSBonjourServices ke Info.plist Anda

    Tentukan NSBonjourServices di Info.plist untuk mengizinkan 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 receiverID Anda, yang merupakan ID yang sama dengan yang ditentukan di GCKDiscoveryCriteria.

    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

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

    <key>NSLocalNetworkUsageDescription</key>
    <string>${PRODUCT_NAME} uses the local network to discover Cast-enabled devices on your WiFi
    network.</string>

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

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

    Sebaiknya rilis ulang aplikasi Anda menggunakan 4.8.3 sesegera mungkin.

Penyesuaian

Inisiasi penemuan perangkat transmisi

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

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

startDiscoveryAfterFirstTapOnCastButton: BOOL(true/false)

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

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

Pada peluncuran Aplikasi berikutnya, GCKUICastButton akan 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. Perhatikan bahwa Apple tidak akan memberikan hak multicast semata-mata untuk tujuan mendukung Cast. Jika berencana mem-build dengan Xcode 12, Anda harus merilis aplikasi dengan Cast 4.6.0.

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

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

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

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

Mengapa perangkat berhenti muncul di pemilih perangkat kustom saya setelah saya mengupgrade ke 4.6.0?

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

Alasan perubahan ini adalah karena perintah izin Local Network Access (LNA) akan muncul setelah aplikasi memindai untuk pertama kalinya. Hal ini dapat menyebabkan dialog izin muncul di tempat acak di aplikasi Anda.

Developer yang mem-build pemilih perangkat kustom untuk aplikasinya akan diharapkan untuk menyediakan interstisial satu kali sebelum memulai pemindaian perangkat untuk pertama kalinya di iOS 14.

iOS 13

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

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

Pengelompokan aplikasi

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

Aplikasi yang dibuat dengan iOS 12 SDK atau yang lebih lama

  • Tindakan yang Direkomendasikan. Performa penemuan perangkat dapat menurun saat berjalan di iOS 13, tetapi tetap akan 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 iOS 13 SDK

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