Zagadnienia dotyczące platformy 32/64-bitowej
Chociaż systemy iOS i macOS historycznie obsługują zarówno aplikacje 32-bitowe, jak i 64-bitowe, firma Apple stopniowo wycofała obsługę 32-bitową.
Od wersji 11 systemu iOS aplikacje 32-bitowe nie będą już uruchamiane, a wszystkie przesłania do sklepu App Store muszą obsługiwać 64-bitowe aplikacje.
Począwszy od stycznia 2018 r., nowe aplikacje przesłane do sklepu Mac App Store muszą obsługiwać 64-bitowe aplikacje, a istniejące aplikacje muszą zostać zaktualizowane do czerwca 2018 r.
Klasyczny interfejs API (XamMac.dll
i monotouch.dll
) platformy Xamarin obsługuje tylko aplikacje 32-bitowe. Jednak nowe aplikacje platform Xamarin.iOS i Xamarin.Mac domyślnie używają ujednoliconego interfejsu API (Xamarin.iOS
i ) i dlatego mogą być przeznaczone zarówno w wersji 32, jak i Xamarin.Mac
64-bitowej, w razie potrzeby.
iOS
Włączanie 64-bitowych kompilacji aplikacji platformy Xamarin.iOS
Ostrzeżenie
Ta sekcja jest uwzględniona ze względów historycznych i ułatwia przenoszenie starszych projektów platformy Xamarin.iOS do ujednoliconego interfejsu API i obsługi 64-bitowej. Wszystkie nowe projekty platformy Xamarin.iOS będą domyślnie używać ujednoliconego interfejsu API i docelowego 64-bitowego interfejsu API.
W przypadku aplikacji mobilnych platformy Xamarin.iOS, które zostały przekonwertowane na ujednolicony interfejs API, deweloperzy muszą ręcznie zaktualizować ustawienia kompilacji do docelowej wersji 64-bitowej:
W okienku rozwiązania kliknij dwukrotnie projekt aplikacji, aby otworzyć okno Opcje projektu.
Wybierz pozycję Kompilacja systemu iOS.
W obszarze symulatora i Telefon na liście rozwijanej Obsługiwane architektury wybierz pozycję x86_64 lub i386 + x86_64:
W przypadku urządzeń fizycznych wybierz jedną z dostępnych kombinacji arm64 :
Kliknij przycisk OK.
Wykonaj czystą kompilację.
ArMv7s jest obsługiwany tylko przez procesor A6 dołączony do i Telefon 5 (lub nowszy). Kod ARMv7 jest szybszy i mniejszy niż ARMv6, działa tylko z systemem i Telefon 3GS i nowszym i jest wymagany przez firmę Apple podczas określania wartości docelowej dla tabletu iPad lub minimalnej wersji systemu iOS 5.0. ArMv6 działa na wszystkich urządzeniach, ale nie jest już obsługiwany przez kompilator dostarczany z programem Xcode 4.5 lub nowszym.
Arm64 jest wymagany do obsługi systemu iOS 8 na urządzeniach z systemem i Telefon 6 lub innych 64-bitowych i będzie wymagany przez firmę Apple podczas przesyłania nowych lub aktualizowania aplikacji w sklepie iTunes App Store.
Aby zapoznać się z kompleksowymi możliwościami różnych urządzeń z systemem iOS, zapoznaj się z dokumentem zgodność urządzeń firmy Apple.
Rozmiar 64-bitowy i binarny zwiększa się
Podczas przejścia firmy Apple z 32-bitowej do 64-bitowej aplikacje systemu iOS będą musiały działać zarówno na sprzęcie 32-bitowym, jak i 64-bitowym. W związku z tym ujednolicony interfejs API platformy Xamarin umożliwia deweloperom kierowanie obu tych elementów.
Określanie architektur 32-bitowych i 64-bitowych znacznie zwiększy rozmiar aplikacji. Pozwoli to jednak nowszym urządzeniom uruchamiać zoptymalizowany kod przy jednoczesnym zachowaniu obsługi starszych urządzeń.
Ważne
Jeśli podczas przesyłania aplikacji systemu iOS do sklepu iTunes App Store zostanie wyświetlony następujący komunikat: OSTRZEŻENIE ITMS-9000: Brak obsługi 64-bitowej. Od 1 lutego 2015 r. nowe aplikacje dla systemu iOS przekazane do sklepu App Store muszą obejmować obsługę 64-bitową i zostać skompilowane przy użyciu zestawu SDK systemu iOS 8 uwzględnionego w środowisku Xcode 6 lub nowszym. Aby włączyć 64-bitowy projekt, zalecamy użycie domyślnego ustawienia kompilacji Xcode "Architektury standardowe" w celu utworzenia pojedynczego pliku binarnego z kodem 32-bitowym i 64-bitowym. Należy przełączyć obsługiwane architektury na jedną z dostępnych kombinacji arm64 (jak pokazano powyżej), ponownie skompilować i przesłać ponownie.
Mac
Ważne
Począwszy od stycznia 2018 r., wszystkie nowe aplikacje dla komputerów Mac przesłane do sklepu Mac App Store muszą obsługiwać 64-bitowe. Istniejące aplikacje ze sklepu Mac App Store i ich aktualizacje muszą obsługiwać 64-bitowe funkcje począwszy od czerwca 2018 r. Zobacz ogłoszenie firmy Apple i przewodnik opisujący sposób aktualizowania aplikacji platformy Xamarin.Mac do wersji 64-bitowej.
Większość nowoczesnych komputerów Mac obsługuje zarówno aplikacje 32-bitowe, jak i 64-bitowe. System MacOS 10.6 (Snow Leopard) był ostatnim systemem operacyjnym, który działa w systemach 32-bitowych. Większość komputerów Mac wydanych od 2010 r. obsługuje oba systemy.
W przeciwieństwie do systemu iOS wiele nowych platform wprowadzonych w ostatnich wersjach systemu macOS jest obsługiwanych tylko w trybie 64-bitowym (CloudKit, EventKit, GameController, LocalAuthentication, MediaLibrary, Multipeer Połączenie ivity, NotificationCenter, GLKit, SpriteKit, Social i MapKit, między innymi).
Ujednolicony interfejs API umożliwia deweloperom wybór rodzaju aplikacji, które chcą tworzyć: 32-bitowe lub 64-bitowe.
Aplikacje 32-bitowe będą działać zarówno na 32-bitowych, jak i 64-bitowych komputerach Mac, mają przestrzeń adresową ograniczoną do 32 bitów i wymagają, aby wszystkie biblioteki miały 32 bity.
Ten tryb jest zwykle używany, jeśli masz 32-bitowe zależności, które nie są uruchamiane w trybie 64-bitowym, jeśli chcesz pobrać mniejsze lub jeśli nie ma żadnych korzyści z wydajności podczas przechodzenia do wersji 64-bitowej.
Ten tryb ogranicza się, ponieważ nie można używać wielu platform dostępnych w systemach macOS Mavericks i macOS Yosemite.
Aplikacje 64-bitowe będą działać tylko na 64-bitowych urządzeniach Mac.
W przypadku komputerów Mac jest to preferowany tryb działania, ponieważ większość komputerów Mac w użyciu obecnie obsługuje tryb 64-bitowy i masz dostęp do pełnego zestawu struktur udostępnianych przez firmę Apple.
Włączanie 64-bitowych kompilacji aplikacji platformy Xamarin.Mac
Aby uzyskać informacje na temat tworzenia aplikacji 64-bitowej przy użyciu platformy Xamarin.Mac, zobacz Przewodnik Aktualizowanie aplikacji ujednoliconych platformy Xamarin.Mac do 64-bitowych .