Xamarin.iOS'ta farklı cihazlar için derleme
Yürütülebilir dosyanızı derleme özellikleri, Project'ın iOS Derleme özellikleri sayfasından yalıtabilirsiniz. Bu sayfa, Project adına sağ tıklar ve Mac için Visual Studio'de Seçenekler iOS Derlemesi ve Visual Studio'da Özellikler'e göz atarak bulunur:
Kullanıcı arabiriminde kullanılabilen yapılandırma seçeneklerine ek olarak, kendi komut satırı seçenekleri kümenizi Xamarin.iOS derleme aracına (mtouch) da geçebilirsiniz.
SDK seçenekleri
Mac için Visual Studio SDK ile ilgili iki önemli özelliği yapılandırmanıza olanak sağlar: yazılımınızı derlemek için kullanılan iOS SDK sürümü ve Dağıtım Hedefi (veya gerekli en düşük iOS sürümü).
iOS SDK sürüm seçeneği, Apple tarafından yayımlanan bir SDK'nın farklı sürümlerini kullanmanızı sağlar; bu, Xamarin.iOS'u derlemeniz sırasında başvuracak derleyicilere, bağlantıcılara ve kitaplıklara yönlendirer. Projeye sağ tıklayın ve Seçenekler'i veardından seçenekler penceresinde iOS Derleme'yi seçin:
Dağıtım Hedefi ayarı, üzerinde uygulama çalıştıracak işletim sisteminin gereken en düşük sürümünü seçmek için kullanılır. Bu, projenizin Info.plist dosyasında ayarlanır. Uygulamalarınızı çalıştırmak için ihtiyacınız olan tüm API'lere sahip en düşük sürümü seçebilirsiniz.
Genel olarak, Xamarin.iOS API'si SDK'nın en son sürümünde kullanılabilen tüm yöntemleri açığa çıkarır ve gerektiğinde işlevselliğin çalışma zamanında kullanılabilir olup oluğunu algılamanıza olanak sağlayan kullanışlı özellikler sağlıyoruz (örneğin, UIDevice.UserInterfaceIdiom Xamarin.iOS üzerinde her zaman çalışırız, tüm çalışmaları arka perde arkasında UIDevice.IsMultitaskingSupported yapacağız).
Bağlama
Linker'ın yürütülebilir dosya boyutunu azaltmanıza ve bunu nasıl etkili bir şekilde kullanabileceğinizi öğrenmenize nasıl yardımcı olduğu hakkında daha fazla bilgi edinmek için Linker'da ayrılmış sayfamızı görebilirsiniz.
Kod oluşturma altyapısı
Xamarin.iOS 4.0'dan başlayarak Xamarin.iOS için iki kod oluşturma arka ucu vardır. Normal Mono kod oluşturma altyapısı ve LLVM Derleyiciyi En Iyi Duruma Getirme'ye dayalı bir altyapı. Her altyapının artıları ve dezavantajları vardır.
Genellikle, geliştirme işlemi sırasında mono kod oluşturma altyapısını büyük olasılıkla kullanır ve hızla tekrarlar. Sürüm derlemeleri ve AppStore dağıtımı için LLVM kod oluşturma altyapısına geçiş yapmak gerekir.
LLVM'nin arka uç altyapısını iyileştirmesi, uzun derleme süreleri maliyetiyle Mono altyapısına göre hem daha hızlı hem de daha sıkı kod üretir.
Bunları iOS Derleme seçeneklerinden etkinleştirebilirsiniz Mac için Visual Studio Visual Studio.
Mimari desteği
ARMv6 (Xamarin.iOS v8.10 ile ARMv6 desteği durduruldu)
- iPhone (özgün), 3G
- iPod 1. nesil, 2. nesil
ARMv7
- iPhone 3GS, 4, 4S
- iPad 1, 2, 3, Mini
- iPod 3, 4, 5. nesil
ARMv7s
- iPhone 5
- iPhone 5c
- iPad 4
Yalnızca ARMv7s işlemcisini hedef alıyorsanız, oluşturulan kod biraz daha hızlı olacaktır, ancak paketiniz içinde birden çok yürütülebilir dosya içeren bir fat ikili derlemedikçe ARMv7 veya ARMv6 sistemlerinde artık çalışmaz.
ARM64 (Xamarin.iOS v8.6'da ARM64'ü desteklemeye başladı)
- iPhone 5s
- iPhone SE
- iPhone 6, 6 Plus
- iPhone 6s, 6s Plus
- iPhone 7, 7 Plus
- iPhone 8, 8 Plus
- iPhone X
- iPad Air
- iPad Air 2
- iPad Mini 2, 3, 4
- iPad Pro (hepsi)
App Store gönderilen derlemelerin 64 bit destek içermesi gerektiğini unutmayın. Bu, Apple tarafından ayarlanmış bir gereksinimdir. Ayrıca, iOS 11 yalnızca 64 bit uygulamaları destekler.
ARM Thumb-2 desteği
Thumb, ARM işlemcileri tarafından kullanılan daha küçük bir yönerge kümesidir. Parmak desteğini etkinleştirerek yürütülebilir dosyanın boyutunu daha yavaş yürütme sürelerine göre azaltarak. Başparmak, ARMv7 ve ARMv7'lerde de destekler.
Koşullu çerçeve kullanımı
Projeniz yeni iOS sürümlerinde bazı özelliklerden faydalanmanızı istiyorsa, koşullu olarak bazı yeni çerçevelere güvenmeniz gerekir. Bunun en önemli örneklerden biri, iOS 4.0 veya daha yeni bir üzerinde çalıştırken iAd kullanmak ama yine de 3.x cihazlarını desteklemektir. Bunu başarmak için Xamarin.iOS'a iAd çerçevesine "zayıf" bağlamanız gerekir. Zayıf bağlamalar çerçevenin yalnızca çerçeveden bir sınıf gerektiğinde isteğe bağlı olarak yüklendiğinden emin olur.
Bunu yapmak için aşağıdaki adımları atabilirsiniz:
- Uygulama Project açın ve iOS Derleme bölmesine gidin.
- Zayıf
'-gcc_flags "-weak_framework iAd"''-gcc_flags "-weak_framework iAd"'istediğiniz her yapılandırma için Ek Seçenekler'e ekleyin:
Buna ek olarak, türlerin kullanımlarınızı, mevcut olmayan eski iOS sürümlerinde çalıştırmaya karşı korumanız gerekir. Bunu gerçekleştirmek için çeşitli yöntemler vardır, ancak bunlardan biri UIDevice.CurrentDevice.SystemVersion ayrıştırmaktır.






