Xamarin. iOS 'da gömülü çerçeveler

Bu belgede, uygulama geliştiricilerinin uygulamalarına Kullanıcı çerçeveleri ekleme işlemlerinin nasıl yapılacağı açıklanmaktadır.

İOS 8,0 Apple ile Xcode 'da uygulama uzantıları ve ana uygulama arasında kod paylaşmak için gömülü bir çerçeve oluşturmayı mümkün hale yaptı.

Xamarin. iOS 9,0, Xamarin. iOS uygulamalarında bu katıştırılmış çerçeveleri (Xcode ile oluşturulan) kullanma desteği ekler. Herhangi bir Xamarin. iOS projesi türünden gömülü çerçeveler oluşturmak mümkün olmayacaktır, yalnızca var olan yerel ( ) çerçeveleri kullanın.

Xamarin. iOS içinde çerçeveleri kullanmanın iki yolu vardır:

  • Aşağıdaki, projenin IOS derleme seçeneklerine ek mtouch bağımsız değişkenlerine ekleyerek Framework 'ü mtouch aracına geçirin:

    --framework:/Path/To/My.Framework
    

    Bu, her proje yapılandırması için ayarlanmalıdır.

  • Bağlam menüsünden yerel başvurular ekleme

Project sağ tıklayın ve yerel başvuru ekle ' ye gidin

Mac için Visual Studio yerel başvuruları ekle ' yi seçin

Bu, tüm yapılandırmalarda çalışır.

Mac için Visual Studio sonraki sürümlerinde ve Xamarin araçları Visual Studio için, çerçeveleri ıde içinden (proje dosyalarını el ile düzenlemeden) kullanmak mümkün olacaktır.

GitHub 'da birkaç örnek proje bulunabilir

Sınırlamalar

  • Gömülü çerçeveler yalnızca Birleşik projelerde desteklenir.
  • Gömülü çerçeveler yalnızca en az iOS 8,0 dağıtım hedefi olan projelerde desteklenir.
  • Bir uzantı gömülü bir çerçeve gerektiriyorsa, kapsayıcı uygulamanın da çerçeveye bir başvurusu olması gerekir, aksi takdirde Framework uygulama paketine dahil edilmez.

Mono çalışma zamanı

Dahili Xamarin. iOS, mono çalışma zamanını her bir uzantıya ve kapsayıcı uygulamasına statik olarak bağlamak yerine çerçeve olarak mono çalışma zamanı ile bağlantı için bu özellikten yararlanır.

Kapsayıcı uygulaması birleştirilmiş bir uygulama ise bu otomatik olarak yapılır, uzantıları içerir ve hedef dağıtım iOS 8,0 veya daha yüksektir.

Uzantısı olmayan uygulamalar, yalnızca bir uygulama varsa, bir Framework kullanımı için bir boyut ceza olduğu için mono çalışma zamanı statik olarak bağlanır.

Bu davranış, projenin iOS derleme seçeneklerine ek bir mtouch bağımsız değişkeni olarak eklenerek, uygulama geliştiricisi tarafından geçersiz kılınabilir:

  • --mono:static: Mono çalışma zamanı statik olarak bağlanır.
  • --mono:framework: Mono çalışma zamanı ile bir çerçeve olarak bağlantılar.

Uzantı içermeyen uygulamalar için bile Mono çalışma zamanı ile bir çerçeve olarak bağlantı için bir senaryo çalıştırılabilir boyutunu azaltarak Apple 'ın çalıştırılabilir üzerinde zorladığı boyut kısıtlamalarını ortadan kaldırmalıdır. Başvuru için mono çalışma zamanı mimari başına yaklaşık 1.7 MB ekler (Xamarin. iOS 8,12 itibariyle, ancak yayınlar arasında ve hatta uygulamalar arasında değişir). Mono çatısı mimari başına yaklaşık 2.3 MB 'lık bir öğe ekler. Bu, herhangi bir uzantısı olmayan tek mimarili bir uygulama için, çalıştırılabilir çalışma zamanı ile uygulama bağlantısının, yürütülebilir dosyayı ~ 1.7 MB olarak küçülmesi, ancak ~ 2.3 MB 'lık bir çerçeve eklemesi ve bu nedenle bir ~