Firebase bağımlılıklarını statik veya dinamik olarak bağlama

CocoaPods 1.9.0 ve Firebase 7'den başlayarak, Firebase bağımlılıkları statik veya dinamik çerçeveler olarak oluşturulur. Önerilerimiz: belirli dinamik kitaplık davranışlarına ihtiyaç duymuyorsanız statik çerçeveler kullanabilirsiniz.

GitHub dışında geliştirilen kitaplıkların yalnızca statik olarak bağlanabileceğini unutmayın. Bu özelliği CocoaPods 1.9.0 ve sonraki sürümlerde bile kullanabilirsiniz. Şu anda bu kitaplık listesinde AdMob, Analytics, Firebase ML ve Performance Monitoring. Diğer tüm dağıtımlar ve diğer kanallar gibi kanallar, örneğin, zip dosyası, Swift Package Manager ve Carthage yalnızca statik olarak bağlantılı kitaplıklar.

Bu belgede, Analytics 360'ta dinamik ve statik Apple platformları. Bu kavramlara aşina değilseniz şu dokümanları bulabilirsiniz:

Bu belge kütüphane bağlantısının türleriyle ilgili olduğundan ve yürütülemeyen kaynak paketlerinin yüklenmesi, kitaplık ve çerçeve terimleri birbirlerinin yerine kullanılır.

Statik bağlantı

Statik olarak bağlantılı kitaplıklar, anlamına gelir. Sonuç olarak, statik kitaplıktaki nesne dosyaları kullanıma sunulduğunda ve uygulama lansman zamanında çözülmesi gerekmez bunu değiştirebilirsiniz. Bunun sonucunda, statik bağlantı kullanan uygulamalar daha hızlı. Bunun nedeni, yürütülebilir bir ikili program / uygulama boyutunun biraz daha büyük olması ve daha büyük olan yürütülebilir boyutun ise %400'e kadar dinamik kitaplıkların eksikliği.

Açık bir şekilde belirterek Firebase bağımlılıklarının statik bağlanmasını zorlayabilirsiniz bağlantı:

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

Dinamik bağlantı

Dinamik olarak bağlantılı kitaplıklar, uygulama paketinizde uygulamanızın yürütülebilir ana dosyasıdır ve uygulamalar, bağlayıcı. Kod paylaşımını etkinleştirmek için Apple'ın çerçevelerinin tümü dinamik olarak bağlanır belirli süreçler arasında Benzer şekilde, kodu paylaşmak için dinamik çerçeveleri Google Analytics 4'te gösterilir. Dinamik çerçeveleri paylaşamazsınız (her ikisi de aynı imza imzası varsa bile) geliştiriciyim.

Firebase'i dinamik çerçeve hedefinin bağımlılığı olarak kullanmak istiyorsanız Firebase'i dinamik olarak bağlamanız gerekir. Aksi takdirde yinelenen sınıf tanımları test edebilir. Dinamik bağlantı oluşturma, use_frameworks! ancak yine de dinamik bağlantıyı doğrudan Podfile:

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

Dinamik bağlantı, özellikle aşağıdaki durumlarda uygulamanızın lansman süresini uzatabilir. uygulamanızın çok fazla bağımlılığı var.