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ı sırasında çözülmesi gerekmez bunu dinamik bağlayıcıyla gerçekleş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 çalıştırılabilir ve uygulama başlatma anında dinamik uygulama tarafından yüklenmeleri gerekir. 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 (aynı sözleşme imzalatılmış olsa 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.