Aspekty 32/64bitové platformy

IOS a macOS sice v minulosti podporovaly 32 i 64bitové aplikace, ale Apple postupně přestal podporovat 32bitovou verzi.

Od 11. iOSu se už nespustí 32bitové aplikace a všechna odeslání do App Storu musí podporovat 64bitovou verzi.

Od ledna 2018 musí nové aplikace odeslané do Mac App Storu podporovat 64bitovou verzi a stávající aplikace se musí aktualizovat do června 2018.

Klasické rozhraní API Xamarinu (XamMac.dll a monotouch.dll) podporuje pouze 32bitové aplikace. Nové aplikace Xamarin.iOS a Xamarin.Mac však ve výchozím nastavení používají sjednocené rozhraní API (Xamarin.iOS a Xamarin.Mac) a proto můžou podle potřeby cílit na 32 i 64bitovou verzi.

iOS

Povolení 64bitových buildů aplikací Xamarin.iOS

Upozorňující

Tato část je součástí historických důvodů a pomáhá přesunout starší projekty Xamarin.iOS do sjednoceného rozhraní API a podporovat 64bitovou verzi. Všechny nové projekty Xamarin.iOS budou ve výchozím nastavení používat sjednocené rozhraní API a cílit na 64bitovou verzi.

Pro mobilní aplikace Xamarin.iOS, které byly převedeny na sjednocené rozhraní API, musí vývojáři ručně aktualizovat nastavení sestavení tak, aby cílila na 64bitovou verzi:

  1. Na panelu řešení poklikejte na projekt aplikace a otevřete okno Možnosti projektu.

  2. Vyberte build iOS.

  3. V rozevíracím seznamu Podporované architektury v simulátoru i Telefon vyberte x86_64 nebo i386 + x86_64:

    Setting Supported architectures to x86_64 or i386 + x86_64

  4. U fyzických zařízení vyberte jednu z dostupných kombinací ARM64 :

    Setting Supported architectures to one of the ARM64 combinations

  5. Klikněte na OK.

  6. Proveďte čisté sestavení.

ARMv7s je podporován pouze procesorem A6, který je součástí i Telefon 5 (nebo vyšší). Kód ARMv7 je rychlejší a menší než ARMv6, funguje jenom s i Telefon 3GS a novějším a apple ho vyžaduje při cílení na iPad nebo minimální verzi iOS 5.0. ARMv6 funguje na všech zařízeních, ale kompilátor už ho nepodporuje s Xcode 4.5 a novějším.

Arm64 se vyžaduje k podpoře iOS 8 na i Telefon 6 nebo jiných 64bitových zařízeních a apple ho bude vyžadovat při odesílání nových nebo aktualizací ukončovaných aplikací v iTunes App Storu.

Komplexní přehled možností různých zařízení s iOSem najdete v dokumentu Kompatibility zařízení společnosti Apple.

Zvyšuje se 64bitová a binární velikost.

Během přechodu společnosti Apple z 32bitové na 64bitovou verzi budou muset aplikace pro iOS běžet na 32bitovém i 64bitovém hardwaru. Z tohoto důvodu umožňuje jednotné rozhraní API Xamarinu vývojářům cílit na obojí.

Cílení na 32bitovou i 64bitovou architekturu výrazně zvýší velikost aplikace. Tím ale umožníte novějším zařízením spouštět optimalizovaný kód a současně podporovat starší zařízení.

Důležité

Pokud se při odesílání aplikace pro iOS do iTunes App Storu zobrazí následující zpráva: "UPOZORNĚNÍ ITMS-9000: Chybí 64bitová podpora. Od 1. února 2015 musí nové aplikace pro iOS nahrané do App Storu obsahovat 64bitovou podporu a musí být sestavené pomocí sady SDK pro iOS 8, která je součástí Xcode 6 nebo novější. Pokud chcete v projektu povolit 64bitovou verzi, doporučujeme použít výchozí nastavení sestavení Xcode standardní architektury k sestavení jednoho binárního souboru s 32bitovým i 64bitovým kódem. Musíte přepnout podporované architektury na jednu z dostupných kombinací ARM64 (jak je uvedeno výše), znovu zkompilovat a znovu odeslat.

Mac

Důležité

Od ledna 2018 musí všechny nové aplikace pro Mac odeslané do Mac App Storu podporovat 64bitovou verzi. Stávající aplikace pro Mac App Store a jejich aktualizace musí podporovat 64bitovou verzi od června 2018. Podívejte se na oznámení společnosti Apple a příručku, která popisuje, jak aktualizovat aplikace Xamarin.Mac na 64bitovou verzi.

Většina moderních počítačů Mac podporuje 32bitové i 64bitové aplikace. MacOS 10.6 (Snow Leopard) byl poslední operační systém, který běžel na 32bitových systémech. Většina maců vydaných od roku 2010 podporuje oba systémy.

Na rozdíl od iOS se mnoho nových architektur zavedených v nedávných verzích macOS podporuje pouze v 64bitovém režimu (CloudKit, EventKit, GameController, LocalAuthentication, MediaLibrary, Multipeer Připojení ivity, NotificationCenter, GLKit, SpriteKit, Social a MapKit.

Jednotné rozhraní API umožňuje vývojářům zvolit, jaké typy aplikací chtějí vytvořit: 32bitovou nebo 64bitovou.

32bitové aplikace se budou spouštět na 32bitových i 64bitových počítačích Mac, mají adresní prostor omezený na 32 bitů a vyžadují, aby všechny knihovny byly 32bitové.

Tento režim obvykle použijete, pokud máte 32bitové závislosti, které neběží v 64bitovém režimu, pokud chcete mít menší stahování nebo pokud nemáte žádné výhody výkonu při přechodu na 64bitovou verzi.

Tento režim omezuje, protože nebudete moct používat mnoho architektur dostupných v macOS Mavericks a macOS Yosemite.

64bitové aplikace se budou spouštět jenom na 64bitových zařízeních Mac.

Pro Mac se jedná o upřednostňovaný režim provozu, protože většina počítačů Mac používá dnes podporuje 64bitový režim a máte přístup k kompletní sadě architektur poskytovaných společností Apple.

Povolení 64bitových buildů aplikací Xamarin.Mac

Informace o vytvoření 64bitové aplikace pomocí Xamarin.Mac najdete v průvodci aktualizací sjednocených aplikací Xamarin.Mac na 64bitovou verzi.