Halaman ini menawarkan tips dan pemecahan masalah untuk masalah khusus platform Apple yang mungkin Anda alami saat menggunakan Firebase.
Ada kesulitan lain atau masalah yang Anda alami tidak dijelaskan di bawah ini? Pastikan Anda membaca FAQ Firebase utama untuk mengetahui lebih lanjut FAQ lintas Firebase atau khusus produk.
Anda juga dapat melihat repo GitHub Firebase SDK untuk platform Apple untuk mengetahui daftar masalah dan pemecahan masalah terbaru yang dilaporkan. Sebaiknya Anda juga melaporkan masalah terkait Firebase SDK untuk platform Apple di sana.
Versi Xcode apa yang didukung Firebase?
Firebase mendukung hingga dua versi utama Xcode, tidak termasuk versi Xcode yang tidak lagi didukung Apple. Misalnya, mulai Maret 2019, Apple mewajibkan semua aplikasi menggunakan minimal iOS 12. Ini berarti dukungan Xcode 9 telah dihentikan, dan Xcode 10 adalah satu-satunya versi utama yang didukung.
Perubahan untuk mendukung versi Xcode minor atau patch tertentu (misalnya, 9.2.0 hingga 9.4.1) ditentukan berdasarkan kebutuhan Firebase platform Apple SDK dan survei penggunaan developer. Perubahan ini
tercermin dalam
catatan rilis Firebase platform Apple SDK
dan halaman penyiapan Firebase platform Apple SDK.
Untuk melihat versi Xcode minimum yang didukung oleh SDK, periksa persyaratan yang tercantum di bagian Menambahkan Firebase ke project Apple.
Dukungan Firebase untuk rilis Beta Xcode tersedia berdasarkan "upaya terbaik". Developer dapat melacak dan mengirim masalah di repositori Firebase platform Apple SDK di GitHub.
Aplikasi saya meminta sandi kepada pengguna untuk mengakses item Keychain di macOS. Bagaimana cara mengatasi ini?
Upgrade dependensi Firebase Anda ke versi 9.6.0 atau yang lebih tinggi dan tambahkan [kemampuan Keychain Sharing](/docs/ios/troubleshooting-faq#macos-keychain-sharing) ke target Anda.
Mengapa Firebase memerlukan kemampuan Keychain Sharing di macOS?
Firebase SDK menggunakan keychain untuk menyimpan informasi seperti ID penginstalan Firebase yang digunakan untuk FCM. Tanpa akses Keychain, Firebase SDK mungkin tidak berfungsi dengan benar. Keychain macOS berperilaku berbeda dengan keychain bergaya iOS yang digunakan di platform lain (iOS, tvOS, macCatalyst, dan watchOS).
Di macOS, aplikasi menggunakan keychain bersama yang dapat dimodifikasi oleh aplikasi dan proses lain. Tidak seperti iOS, tidak ada keychain sandbox yang dapat diakses secara implisit oleh aplikasi. Jadi, saat aplikasi Mac berinteraksi dengan keychain, sistem akan meminta pengguna untuk mengakses karena aplikasi Mac mungkin akan mengubah item keychain yang tidak dibuatnya. Untuk mengatasi perbedaan ini, Firebase mengkueri keychain dengan kunci kSecUseDataProtectionKeychain
, yang memberi tahu aplikasi untuk mengkueri item keychain yang merupakan bagian dari grup akses keychain (ini adalah perilaku default pada platform lainnya). Kemampuan Keychain Sharing diperlukan karena aplikasi perlu menyatukan grup akses yang dapat dibagikan di antara targetnya, sehingga memberikan izin bagi aplikasi untuk mengakses item keychain secara bebas dalam grup akses.
Untuk informasi selengkapnya, lihat dokumentasi Keychain Apple.
Di Xcode versi 13 dan yang lebih baru, mengapa aplikasi UIKit saya tidak dapat membuka beberapa URL yang telah saya daftarkan
di Info.plist?
Apple memperkenalkan batas 50 entri LSApplicationQueriesSchemes
dalam file Info.plist
. Pada tahun 2015, Apple memperkenalkan LSApplicationQueriesSchemes
untuk membatasi jumlah kueri URL yang dapat dibuat oleh setiap aplikasi. Dengan rilis Xcode 13, batasan ini diterapkan, sedangkan di Xcode 12 dan yang lebih lama tidak ada batas efektif untuk jumlah skema.
Beberapa produk Firebase, seperti Firebase Authentication dan Firebase Dynamic Links, mengharuskan penggunaan skema URL kustom untuk mengalihkan pengguna ke aplikasi Anda. URL ini sesuai dengan skema URL yang ringkas dan konsisten yang tidak akan dihitung secara signifikan terhadap batas skema 50 link.
Perlu diketahui bahwa untuk aplikasi yang terus mendaftarkan lebih dari 50 LSApplicationQueriesSchemes
, beberapa skema akan diabaikan secara diam-diam. Aplikasi mungkin tidak dapat menjalankan deep link tertentu, bergantung pada urutan penambahannya.