iOS, Mac ve Bağlama Projelerinde Yerel Başvurular
Yerel başvurular, Xamarin.iOS veya Xamarin.Mac projesine veya bağlama projesine yerel çerçeve ekleme olanağı sağlar.
iOS 8.0'dan bu yana uygulama uzantılarıyla Xcode'daki ana uygulama arasında kod paylaşmak için eklenmiş bir çerçeve oluşturmak mümkündür. Yerel Başvuru özelliğini kullanarak bu katıştırılmış çerçeveleri (Xcode ile oluşturulan) Xamarin.iOS'ta kullanmak mümkün olacaktır.
Önemli
Herhangi bir Xamarin.iOS veya Xamarin.Mac projesinden katıştırılmış çerçeveler oluşturmak mümkün olmayacaktır. Yerel Başvurular yalnızca mevcut yerel (Objective-C) çerçevelerin tüketimine izin verir.
Terminoloji
iOS 8 'de (ve sonraki sürümlerde), Katıştırılmış Çerçeveler hem statik olarak bağlantılı hem de dinamik olarak bağlı Çerçeveler olabilir. Bunları düzgün bir şekilde dağıtmak için, uygulamanızla desteklemek istediğiniz her cihaz mimarisi için tüm Dilimlerini içeren "yağ" Çerçeveler haline getirmeniz gerekir.
Statik ve Dinamik Çerçeveler karşılaştırması
Statik Çerçeveler derleme zamanında bağlanır; burada Dinamik Çerçeveler çalışma zamanında bağlanır ve bunlar yeniden bağlanmadan değiştirilebilir. iOS 8'in öncesinde herhangi bir 3. taraf Framework kullandıysanız, uygulamanızda derlenmiş bir Statik Çerçeve kullanıyordunuz. Daha fazla ayrıntı için Apple'ın Dinamik Kitaplık Programlama belgelerine bakın.
Katıştırılmış ve Sistem Çerçeveleri karşılaştırması
Katıştırılmış Çerçeveler , uygulama paketinize dahil edilir ve yalnızca korumalı alanı aracılığıyla belirli uygulamanız tarafından erişilebilir. Sistem Çerçeveleri İşletim Sistemi Düzeyinde depolanır ve cihazdaki tüm uygulamalar tarafından kullanılabilir. Şu anda yalnızca Apple, İşletim Sistemi Düzeyi Çerçeveleri oluşturma özelliğine sahiptir.
İnce ve Yağ Çerçeveleri karşılaştırması
Thin Framework'ler yalnızca Fat Framework'lerin birden çok mimariye yönelik kod içerdiği belirli bir sistem mimarisi için derlenmiş kodu içerir. Bir Çerçevede derlenen her mimariye özgü kod temeli, Dilim olarak adlandırılır. Bu nedenle, örneğin, iki iOS Simülatörü mimarisi (i386 ve X86_64) için derlenmiş bir Çerçevemiz olsaydı, iki Dilim içerirdi.
Bu örnek Çerçeveyi uygulamanızla dağıtmaya çalışırsanız, Bu çerçeve Simülatör'de doğru şekilde çalışır, ancak Framework bir iOS cihazı için koda özgü Dilimler içermediğinden cihazda başarısız olur. Çerçevenin tüm örneklerde çalıştığından emin olmak için arm64, armv7 ve armv7s gibi cihaza özgü Dilimler de dahil edilmesi gerekir.
Katıştırılmış Çerçevelerle Çalışma
Xamarin.iOS veya Xamarin.Mac uygulamasında Embedded Framework'lerle çalışmak için tamamlanması gereken iki adım vardır: Fat Framework Oluşturma ve Çerçeveyi Katıştırma.
Fat Framework Oluşturma
Yukarıda belirtildiği gibi, uygulamanızda Bir Embedded Framework kullanabilmek için, uygulamanızın üzerinde çalıştırılacağı cihazlar için tüm sistem mimarilerini içeren bir Fat Framework olmalıdır.
Framework ve kullanan uygulama aynı Xcode projesinde olduğunda, Xcode aynı derleme ayarlarını kullanarak hem Framework hem de Uygulama oluşturacağı için bu bir sorun değildir. Xamarin uygulamaları Embedded Framework oluşturamadığından bu teknik kullanılamaz.
Bu sorunu çözmek için komut satırı aracı, lipo
iki veya daha fazla Çerçeveyi tüm gerekli Dilimleri içeren tek bir Fat Framework ile birleştirmek için kullanılabilir. komutuyla lipo
çalışma hakkında daha fazla bilgi için lütfen Yerel Kitaplıkları Bağlama belgelerimize bakın.
Çerçeve Ekleme
Yerel Başvurular kullanarak Xamarin.iOS veya Xamarin.Mac projesine çerçeve eklemek için aşağıdaki adım gereklidir:
Yeni bir Xamarin.iOS, Xamarin.Mac veya Bağlama projesi oluşturun veya mevcut bir projeyi açın.
Çözüm Gezgini proje adına sağ tıklayın ve Yerel Başvuru Ekle'yi>seçin:
Aç iletişim kutusunda, eklemek istediğiniz Yerel Çerçevenin adını seçin ve Aç düğmesine tıklayın:
Çerçeve projenin ağacına eklenir:
Proje derlendiğinde, Yerel Çerçeve Uygulamanın paketine eklenir.
Uygulama Uzantıları ve Katıştırılmış Çerçeveler
Dahili olarak Xamarin.iOS, Mono çalışma zamanını çerçeve olarak bağlamak için bu özelliğin avantajlarından yararlanabilir (dağıtım hedefi = iOS 8.0 olduğunda >), bu nedenle uzantılı uygulamalar için uygulama boyutunu önemli ölçüde azaltır (Mono çalışma zamanı kapsayıcı uygulaması için bir kez ve her uzantı için bir kez yerine tüm uygulama paketi için yalnızca bir kez dahil olacağından).
Tüm uzantılar iOS 8.0 gerektirdiğinden uzantılar mono çalışma zamanına çerçeve olarak bağlanır.
iOS'ı hedefleyen uzantılara ve uygulamalara sahip olmayan uygulamalar
Özet
Bu makalede, Xamarin.iOS veya Xamarin.Mac uygulamasına yerel çerçeve ekleme konusuna ayrıntılı bir bakış verilmişti.