Xamarin.iOS'ta farklı cihazlar için derleme
Yürütülebilir dosyanızın derleme özellikleri Project'in iOS Derleme özellikleri sayfasından yapılandırılabilir. Bu sayfada Proje adına sağ tıklayıp Mac için Visual Studio'de Seçenekler > iOS Derlemesi'ne ve Visual Studio'daki Özellikler'e göz atabilirsiniz:
Kullanıcı arabiriminde kullanılabilen yapılandırma seçeneklerine ek olarak, Xamarin.iOS derleme aracına (mtouch) kendi komut satırı seçeneklerinizi de geçirebilirsiniz.
SDK seçenekleri
Mac için Visual Studio SDK ile ilgili iki önemli özelliği yapılandırmanıza olanak tanır: yazılımınızı oluşturmak için kullanılan iOS SDK sürümü ve Dağıtım Hedefi (veya gereken 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ıza olanak tanır. Bu, Xamarin.iOS'yi derlemeniz sırasında başvurması gereken derleyicilere, bağlayıcılara ve kitaplıklara yönlendirir. Projeye sağ tıklayın ve Seçenekler'i ve ardından seçenekler penceresinde iOS Derlemesi'ni seçin:
Dağıtım Hedefi ayarı, uygulamanızın çalıştırılacağı işletim sisteminin gerekli en düşük sürümünü seçmek için kullanılır. Bu, projenizin Info.plist dosyasında ayarlanır. Uygulamanızı çalıştırmak için ihtiyacınız olan tüm API'leri içeren en düşük sürümü seçmelisiniz.
Genel olarak, Xamarin.iOS API'si SDK'nın en son sürümünde kullanılabilen tüm yöntemleri kullanıma sunar ve gerektiğinde, işlevselliğin çalışma zamanında kullanılabilir olup olmadığını algılamanıza olanak sağlayan kolaylık özellikleri sağlarız (örneğin, UIDevice.UserInterfaceIdiom
ve UIDevice.IsMultitaskingSupported
her zaman Xamarin.iOS üzerinde çalışır, tüm işi arka planda yaparız).
Bağlama
Bağlayıcının yürütülebilir dosyalarınızın boyutunu azaltmanıza nasıl yardımcı olduğu hakkında daha fazla bilgi edinmek ve etkili bir şekilde nasıl kullanacağınızı öğrenmek için Bağlayıcı'nın ayrılmış sayfamıza bakın.
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 İyileştirme Derleyicisini temel alan altyapı. Her motorun avantajları ve dezavantajları vardır.
Genellikle geliştirme işlemi sırasında mono kod oluşturma altyapısını hızlı bir şekilde yinelemenize olanak sağlayacak şekilde kullanırsınız. Yayın derlemeleri ve AppStore dağıtımı için LLVM kod oluşturma altyapısına geçmek istersiniz.
LLVM iyileştirme arka uç altyapısı, uzun derleme süreleri karşılığında Mono altyapısından daha hızlı ve daha sıkı kod üretir.
Bunları Mac için Visual Studio veya Visual Studio'daki iOS Derleme seçeneklerinden etkinleştirebilirsiniz.
Mimari desteği
ARMv6 (Xamarin.iOS, v8.10 ile ARMv6 desteğini durdurdu)
- i Telefon (orijinal), 3G
- iPod 1st, 2. nesil
ARMv7
- i Telefon 3GS, 4, 4S
- iPad 1, 2, 3, Mini
- iPod 3, 4, 5. nesil
ARMv7s
- i Telefon 5
- i Telefon 5c
- iPad 4
Yalnızca ARMv7s işlemcisini hedeflerseniz, oluşturulan kod biraz daha hızlı olur, ancak paketinizde birden çok yürütülebilir dosya içeren bir yağ ikili dosyası derlemediğiniz sürece artık ARMv7 veya ARMv6 sistemlerinde çalışmaz.
ARM64 (Xamarin.iOS, v8.6'da ARM64'i desteklemeye başladı)
- i Telefon 5s
- i Telefon SE
- i Telefon 6, 6 Plus
- i Telefon 6s, 6s Plus
- i Telefon 7, 7 Artı
- i Telefon 8, 8 Artı
- i Telefon X
- iPad Air
- iPad Air 2
- iPad Mini 2, 3, 4
- iPad Pro (tümü)
App Store'a gönderilen tüm derlemelerin 64 bit destek içermesi gerektiğini unutmayın. Bu, Apple tarafından ayarlanan bir gereksinimdir. Ayrıca, iOS 11 yalnızca 64 bit uygulamaları destekler.
ARM Thumb-2 desteği
Thumb, ARM işlemciler tarafından kullanılan daha kompakt bir yönerge kümesidir. Başparmak desteğini etkinleştirerek daha yavaş yürütme süreleri harcamadan yürütülebilir dosyanızın boyutunu küçültebilirsiniz. Başparmak, ARMv7 ve ARMv7'lerde desteklenir.
Koşullu çerçeve kullanımı
Projeniz yeni iOS sürümlerindeki bazı özelliklerden yararlanmak istiyorsa, belirli yeni çerçevelere koşullu olarak güvenmeniz gerekebilir. Bunun en önemli örneklerinden biri, iOS 4.0 veya sonraki bir sürümünü çalıştırırken iAd kullanmak isteme ancak 3.x cihazları desteklemeye devam etmektir. Bunu başarmak için Xamarin.iOS'a iAd çerçevesine "zayıf" bir şekilde bağlanmanız gerektiğini bildirmeniz gerekir. Zayıf bağlamalar, çerçevenin yalnızca çerçeveden ilk kez bir sınıf gerektiğinde isteğe bağlı olarak yüklenmesini sağlar.
Bunu yapmak için aşağıdaki adımları gerçekleştirmeniz gerekir:
- Proje Seçeneklerinizi açın ve iOS Derleme bölmesine gidin.
- Zayıf bağlantı sağlamak istediğiniz her yapılandırma için Ek Seçenekler'e ekleyin
'-gcc_flags "-weak_framework iAd"'
:
Buna ek olarak, türlerin mevcut olmadığı eski iOS sürümlerinde çalışmasını korumanız gerekir. Bunu gerçekleştirmek için birkaç yöntem vardır, ancak bunlardan biri ayrıştırmaktır UIDevice.CurrentDevice.SystemVersion
.