Můžu použít starší verzi Xcode nebo Xamarin.iOS?

Dokumentace k Xamarinu předpokládá použití nejnovější verze Xamarin.iOS a Xcode, které se doporučuje. Někteří zákazníci by ale raději používali starší Xamarin.iOS nebo Xcode a chtěli by podrobnosti o dopadech.

Poznámky k verzi obsahují následující upozornění:

Upozorňující

Použití starší verze Xcode

Použití starší verze Xcode (než verze uvedené v předchozích požadavcích) je často možné, ale některé funkce nemusí být dostupné. Některá omezení můžou vyžadovat alternativní řešení, například:

  • Statická registrar vyžaduje, aby soubory hlaviček Xcode sestavily aplikace, což vede k MT0091 chybám nebo MT4109 k chybám, pokud rozhraní API chybí. Ve většině případů vám povolení spravovaného linkeru pomůže (odebráním rozhraní API).
  • Sestavení bitcode (pro tvOS a watchOS) můžou selhat odeslání do App Storu, pokud se nepoužívá sada nástrojů Xcode 9.0+.

Další informace

Microsoft důrazně doporučuje při vývoji a odesílání aplikací používat nejnovější verzi Xamarin.iOS. Apple při odesílání aplikací vyžaduje použití nejnovějšího Xcode.

Mějte na paměti, že použití nejnovější verze Xcode nezabrání vaší aplikaci v cílení na starší verze iOS. Verze pro iOS, které podporujete, vycházejí z vaší položky Info.plist a rozhraní API, která vaše aplikace používá.

Je možné nainstalovat několik verzí Xcode vedle sebe s různými názvy, jako jsou Xcode101.app a Xcode102.app. Pokud používáte více verzí, nezapomeňte nastavit aktivní Xcode v Visual Studio pro Mac Nastavení a pomocí nástroje příkazového xcode-selectřádku.

Vzácné okolnosti však mohou vyžadovat použití starších komponent. Tato dokumentace popisuje obecné problémy, se kterým se můžete setkat při používání verzí starších než nejnovějších.

Každá verze od Společnosti Apple je ale jedinečná a můžete se setkat s dalšími nástrahami, které zde nejsou zdokumentované.

Tyto výzvy jsou někdy nesouvisejí s řešením, takže kdykoli je to možné, držte se podporované konfigurace nejnovějšího Xcode a nejnovějšího Xamarin.iOS.

Použití starého Xamarin.iOS se starým Xcodem

Aktualizace Xamarin.iOS a Xcode je možná alespoň po určitou dobu. Limitem je, že v určitém okamžiku bude Apple vyžadovat k odeslání aplikací minimální verzi Xcode. V tomto okamžiku byste měli aktualizovat všechny komponenty (macOS, Xcode a Xamarin.iOS) na nejnovější verze (nebo na novou minimální verzi Xcode vyžadovanou společností Apple a odpovídající verzi Xamarin.iOS).

Obvykle je jednodušší postupně aktualizovat a držet krok s malými změnami. U velkých projektů, u kterých může být aktualizace obtížnější držet krok, může být dobrým kompromisem zůstat se známou pracovní sadou.

Použití nového Xamarin.iOS se starším Xcodem

Xamarin.iOS obecně podporuje starší verze Xcode, kdykoli je to možné. Mezi potenciální výzvy patří:

  • Novější Xamarin.iOS může podporovat některé funkce a rozhraní API, které nejsou ve vybraném Xcode.
  • Statická registrarvyžaduje, aby soubory hlaviček Xcode sestavily aplikace, což vede k MT0091 chybám nebo MT4109 k chybám, pokud rozhraní API chybí.
    • Ve většině případů vám povolení spravovaného linkeru pomůže (odebráním spravovaných vazeb pro nové rozhraní API), pokud se nepouží.
  • Sestavení bitcode (pro tvOS a watchOS) můžou selhat odeslání do App Storu, pokud se nepoužívá sada nástrojů Xcode 9.0+.

Použití nového Xcode se starším Xamarin.iOS

Tento případ použití je výrazně obtížnější, protože Xamarin.iOS nedokáže předpovědět měnící se požadavky nového Xcode. Aktualizace macOS může také zavádět problémy a bez oprav kompatibility může být ovlivněna řada částí Xamarin.iOS.

Existuje řada potenciálních oblastí, kde se můžou pokazit věci, mezi které patří:

  • Nekompatibility s mlaunch:
    • Podpora simulátoru nemusí fungovat správně (nebo vůbec)
    • Podpora zařízení nemusí správně fungovat (nebo vůbec)
  • Neznámá podpora pro mtouch
    • Žádná podpora pro nové architektury
    • Žádná podpora nových nároků
    • Žádná podpora nových nebo aktualizovaných nástrojů
      • To může mít vliv i na podepisování kódu.

Nová pravidla odeslání AppStore

Společnost Apple si vyhrazuje právo kdykoli aktualizovat pravidla odesílání appstore. Tyto změny pravidel se oznamují jen někdy předem. Některé z těchto změn vyžadují změny nástrojů pro podporu, které by vyžadovaly aktualizovanou komponentu Xamarin.iOS.

Kromě změn pravidel Apple často přidává další ověření do odeslaných aplikací nebo zpřísňuje stávající. Některé z nich vyžadují změny v našich nástrojích (např. nové symboly se seznamem blokovaných položek). Mnoho z nich je poprvé narazí na zákazníky, kteří je odesílají, protože neexistuje žádné oznámení (ani seznam) pravidel.

Shrnutí

Kdykoli je to možné, hrajte ji bezpečně podle pokynů společnosti Apple a vývoje a odesílání pomocí nejnovějšího Xcode vydaného v App Storu.

Nakonec použijte nejnovější vydaný Xamarin.iOS. Tím se budou sledovat nejnovější opravy, které můžou ovlivnit odeslané aplikace a dodržovat nejnovější změny pravidel.

Pokud to není možné, zvažte použití odpovídající starší verze Xcode a Xamarin.iOS. To může nějakou dobu fungovat, ale v určitém okamžiku Apple bude trvat na novějších nástroji tak, aby plánoval odpovídajícím způsobem.