Xcode veya Xamarin.iOS'un eski bir sürümünü kullanabilir miyim?

Xamarin belgelerinde önerilen en son Xamarin.iOS ve Xcode'un kullanıldığı varsayılır. Ancak, bazı müşteriler eski Xamarin.iOS ve/veya Xcode kullanmayı tercih eder ve sonuçları hakkında ayrıntılı bilgi almak ister.

Sürüm notları aşağıdaki uyarıyı içerir:

Uyarı

Eski bir Xcode sürümü kullanma

Eski bir Xcode sürümü (yukarıdaki gereksinimlerde belirtilenden daha eski) kullanmak genellikle mümkündür, ancak bazı özellikler kullanılamayabilir. Ayrıca bazı sınırlamalar geçici çözümler gerektirebilir, örneğin:

  • Statik registrar , uygulamaları derlemek için Xcode üst bilgi dosyaları gerektirir ve API'ler eksikse hatalara MT0091MT4109 neden olur. Çoğu durumda yönetilen bağlayıcıyı etkinleştirmek (API'yi kaldırarak) yardımcı olur.
  • Xcode 9.0+ araç zinciri kullanılmadığı sürece bitcode derlemeleri (tvOS ve watchOS için) App Store'a gönderim başarısız olabilir.

Daha fazla bilgi

Microsoft, uygulama geliştirirken ve gönderirken en son Xcode ve en son Xamarin.iOS sürümünü kullanmanızı kesinlikle önerir. Apple, uygulamaları gönderirken en son Xcode'u kullanmayı gerektirir.

En son Xcode'un kullanılması uygulamanızın eski iOS sürümlerini hedeflemesini engellemez. Desteklediğiniz iOS sürümleri Info.plist girdinize ve uygulamanızın kullandığı API'lere dayanır.

Xcode'un birden çok sürümünü Xcode101.app ve Xcode102.app gibi farklı adlarla yan yana yüklemek mümkündür. Birden çok sürüm kullanıyorsanız, Mac için Visual Studio Ayarlar ve komut satırı aracıyla etkin Xcode'un ayarlandığından xcode-selectemin olun.

Ancak nadir durumlarda eski bileşenlerin kullanılması gerekebilir. Bu belge, en son sürümlerden eski sürümleri kullanırken karşılaşabileceğiniz genel zorlukları açıklamaktadır.

Ancak Apple'ın her sürümü benzersizdir ve burada belgelenmemiş diğer tuzaklarla karşılaşabilirsiniz.

Bu zorlukların çözülmesi bazen önemsizdir, bu nedenle mümkün olduğunda en son Xcode ve en son Xamarin.iOS'un desteklenen yapılandırmasına bağlı kalın.

Eski Xcode ile eski bir Xamarin.iOS kullanımı

Xamarin.iOS ve Xcode'un güncelleştirilmemesi mümkündür, en azından bir süre için. Sınır, bir noktada Apple'ın uygulamalarınızı göndermek için en düşük Xcode sürümünü gerektirmesidir. Bu noktada tüm bileşenlerinizi (macOS, Xcode ve Xamarin.iOS) en son sürümlere (veya Apple tarafından gereken Xcode'un yeni, en düşük sürümüne ve eşleşen Xamarin.iOS sürümüne) güncelleştirmeniz gerekir.

Küçük değişiklikleri aşamalı olarak güncelleştirmek ve bu değişikliklere ayak uydurmak genellikle daha kolaydır. Güncelleştirmelere ayak uydurmanın zor olabileceği büyük projelerde bilinen çalışma kümesiyle kalmak iyi bir risk olabilir.

Eski Xcode ile yeni Xamarin.iOS kullanımı

Xamarin.iOS genel olarak makul ölçüde eski Xcode sürümlerini destekler. Olası zorluklardan bazıları şunlardır:

  • Yeni Xamarin.iOS, seçilen Xcode'da bulunmayan bazı özellikleri ve API'leri destekleyemeyebilir.
  • Statikregistrar, uygulamaları derlemek için Xcode üst bilgi dosyaları gerektirir ve API'ler eksikse hatalara MT0091MT4109 neden olur.
    • Çoğu durumda, yönetilen bağlayıcının etkinleştirilmesi (yeni API için yönetilen bağlamaları kaldırarak) kullanılmamışsa yardımcı olur.
  • Xcode 9.0+ araç zinciri kullanılmadığı sürece bitcode derlemeleri (tvOS ve watchOS için) App Store'a gönderim başarısız olabilir.

Eski Xamarin.iOS ile yeni Xcode kullanımı

Xamarin.iOS yeni Xcode'un değişen gereksinimlerini tahmin edemediğinden bu kullanım örneği önemli ölçüde daha zordur. macOS'un Güncelleştirmeler da sorunlara yol açabilir ve uyumluluk düzeltme ekleri olmadan Xamarin.iOS'un birçok bölümü etkilenebilir.

İşlerin ters gidebileceği birkaç olası alan vardır:

  • ile mlaunchuyumsuzluklar:
    • Simülatör desteği düzgün çalışmayabilir (veya hiç)
    • Cihaz desteği düzgün çalışmayabilir (veya hiç)
  • için bilinmeyen destek mtouch
    • Yeni çerçeveler için destek yok
    • Yeni yetkilendirmeler için destek yok
    • Yeni veya güncelleştirilmiş araçlar için destek yok
      • Bu durum kod imzalamayı da etkileyebilir

Yeni AppStore gönderim kuralları

Apple, istediği zaman AppStore gönderim kurallarında güncelleştirme hakkı saklıdır. Bu kural değişiklikleri yalnızca bazen önceden duyurulur. Bu değişikliklerin bazıları desteklenecek araç değişiklikleri gerektirir ve bu da güncelleştirilmiş bir Xamarin.iOS bileşeni gerektirir.

Kural değişikliklerine ek olarak, Apple genellikle gönderilen uygulamalara ek doğrulamalar ekler veya mevcut uygulamaları sıkılaştırır. Bunlardan bazıları araçlarımızda değişiklik yapılmasını gerektirir (ör. yeni bir engellenen simgeler). Kuralların duyurusu (veya listesi) olmadığından, bunların çoğu ilk olarak gönderen müşteriler tarafından karşılaşılır.

Özet

Mümkün olduğunda, Apple'ın yönergelerini izleyerek ve App Store'da yayınlanan en son Xcode ile geliştirerek ve göndererek güvenli bir şekilde oynayın.

Buna karşılık, yayınlanan en son Xamarin.iOS sürümünü kullanın. Bu, gönderilen uygulamaları etkileyebilecek ve en son kural değişiklikleriyle uyumlu olabilecek en son düzeltmeleri izler.

Bunun uygun olmadığı durumlarda, eşleşen eski bir Xcode ve Xamarin.iOS sürümünü kullanmayı göz önünde bulundurun. Bu bir süre için işe yarabilir, ancak bir noktada Apple daha yeni araçlar üzerinde ısrar edecektir, bu yüzden buna göre plan yapacaktır.