Ikuti semua informasi yang diumumkan di Firebase Summit, dan pelajari bagaimana Firebase dapat membantu Anda mempercepat pengembangan aplikasi dan menjalankan aplikasi dengan percaya diri. Pelajari Lebih Lanjut

Tautkan dependensi Firebase secara statis atau dinamis

Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.

Dimulai dengan CocoaPods 1.9.0 dan Firebase 7, Anda dapat memilih apakah dependensi Firebase Anda dibuat sebagai kerangka kerja statis atau dinamis. Kami merekomendasikan penggunaan kerangka kerja statis kecuali jika Anda memerlukan perilaku perpustakaan dinamis tertentu.

Perhatikan bahwa pustaka yang dikembangkan di luar GitHub hanya dapat ditautkan secara statis bahkan dengan CocoaPods 1.9.0 dan yang lebih baru. Saat ini, daftar library ini mencakup AdMob, Analytics, Firebase ML, dan Performance Monitoring. Semua saluran distribusi lainnya, termasuk file zip, Swift Package Manager, dan Carthage hanya menyediakan pustaka yang terhubung secara statis.

Dokumen ini mengasumsikan pengetahuan kerja tentang penautan dinamis dan statis pada platform Apple. Jika Anda tidak terbiasa dengan konsep ini, lihat dokumentasi berikut:

Karena dokumen ini berkaitan dengan jenis tautan perpustakaan dan bukan memuat bundel sumber daya yang tidak dapat dieksekusi, istilah perpustakaan dan kerangka kerja digunakan secara bergantian.

Tautan statis

Pustaka yang ditautkan secara statis digabungkan ke dalam aplikasi Anda yang dapat dieksekusi pada waktu pembuatan. Akibatnya, file objek di pustaka statis akan ada di aplikasi Anda saat diluncurkan dan tidak perlu diselesaikan pada waktu peluncuran aplikasi oleh penaut dinamis. Akibatnya, aplikasi yang menggunakan tautan statis akan diluncurkan lebih cepat. Ini datang dengan mengorbankan biner / aplikasi yang dapat dieksekusi sedikit lebih besar, meskipun perlu dicatat bahwa ukuran yang dapat dieksekusi yang lebih besar akan diimbangi oleh kurangnya pustaka dinamis yang dibundel.

Anda bisa memaksakan penautan statis dari dependensi Firebase dengan secara eksplisit menentukan tautan di Podfile Anda:

# cocoapods >= 1.9.0
use_frameworks! :linkage => :static

Tautan dinamis

Pustaka yang ditautkan secara dinamis disimpan dalam bundel aplikasi Anda secara terpisah dari aplikasi utama yang dapat dieksekusi, dan harus dimuat pada waktu peluncuran aplikasi oleh penaut dinamis. Semua kerangka kerja Apple ditautkan secara dinamis untuk memungkinkan berbagi kode antar proses; demikian pula, Anda dapat menggunakan kerangka kerja dinamis untuk berbagi kode antara aplikasi dan target ekstensi. Anda tidak dapat berbagi kerangka kerja dinamis di antara aplikasi terpisah, meskipun keduanya ditandatangani oleh pengembang yang sama.

Jika Anda ingin menggunakan Firebase sebagai target framework dinamis, Anda juga perlu menautkan Firebase secara dinamis; jika tidak, Anda akan menemukan definisi kelas duplikat dalam waktu proses aplikasi Anda. Penautan dinamis adalah perilaku default dengan use_frameworks! , tetapi Anda masih dapat secara eksplisit menentukan tautan dinamis di Podfile Anda:

# cocoapods >= 1.9.0
use_frameworks! :linkage => :dynamic

Perhatikan bahwa penautan dinamis dapat meningkatkan waktu peluncuran aplikasi Anda, terutama jika aplikasi Anda memiliki banyak ketergantungan.