Überlegungen zu 32/64-Bit-Plattformen32/64-bit platform considerations

Obwohl IOS und macOS sowohl 32-als auch 64-Bit-apps in der Vergangenheit unterstützt haben, hat Apple die Unterstützung für die Unterstützung von 32-BitWhile iOS and macOS have historically supported both 32 and 64-bit apps, Apple has gradually deprecated 32-bit support.

Ab IOS 11 werden 32-Bit-apps nicht mehr gestartet, und alle Übermittlungen an den App Store müssen 64 Bit unterstützen.As of iOS 11, 32-bit apps will no longer launch, and all submissions to the App Store must support 64-bit.

Ab Januar 2018 müssen neue apps, die an den Mac App Store übermittelt werden, 64-Bit unterstützen, und vorhandene apps müssen bis 2018 aktualisiert werden.Starting in January 2018, new apps submitted to the Mac App Store must support 64-bit, and existing apps must be updated by June 2018.

Die Classic API von xamarin ( XamMac.dll und monotouch.dll ) unterstützten nur 32-Bit-Anwendungen.Xamarin's Classic API (XamMac.dll and monotouch.dll) supported only 32-bit applications. Neue xamarin. IOS-und xamarin. Mac-Anwendungen verwenden jedoch standardmäßig die Unified API ( Xamarin.iOS und Xamarin.Mac ) und können daher bei Bedarf sowohl 32 als auch 64-Bit als Ziel verwenden.However, new Xamarin.iOS and Xamarin.Mac applications use the Unified API (Xamarin.iOS and Xamarin.Mac) by default, and can therefore target both 32 and 64-bit, as necessary.

iOSiOS

Aktivieren von 64-Bit-Builds von xamarin. IOS-appsEnabling 64-bit builds of Xamarin.iOS apps

Warnung

Dieser Abschnitt ist aus historischen Gründen enthalten und soll Sie dabei unterstützen, ältere xamarin. IOS-Projekte in die Unified API zu verschieben und 64-Bit-Unterstützung zu unterstützen.This section is included for historic reasons, and to help move older Xamarin.iOS projects to the Unified API and support 64-bit. Alle neuen xamarin. IOS-Projekte verwenden standardmäßig die Unified API und das 64-Bit-Ziel.All new Xamarin.iOS projects will use the Unified API and target 64-bit by default.

Für Mobile xamarin. IOS-Anwendungen, die in die Unified API konvertiert wurden, müssen Entwickler die Buildeinstellungen manuell auf das 64-Bit-Ziel aktualisieren:For Xamarin.iOS mobile applications that have been converted to the Unified API, developers must manually update the build settings to target 64-bit:

  1. Doppelklicken Sie im Lösungspadauf das Projekt der APP, um das Fenster Projektoptionen zu öffnen.In the Solution Pad, double-click the app's project to open the Project Options window.

  2. Wählen Sie IOS-Buildaus.Select iOS Build.

  3. Wählen Sie für den iPhone-Simulator in der Dropdown Liste unterstützte Architekturen entweder x86 _ 64 oder i386 + x86 _ 64aus:For the iPhone Simulator, in the Supported architectures dropdown, select either x86_64 or i386 + x86_64:

    Festlegen unterstützter Architekturen auf x86 _ 64 oder i386 + x86 _ 64Setting Supported architectures to x86_64 or i386 + x86_64

  4. Wählen Sie für physische Geräte eine der verfügbaren ARM64 -Kombinationen aus:For physical devices, select one of the available ARM64 combinations:

    Festlegen unterstützter Architekturen auf eine der ARM64-KombinationenSetting Supported architectures to one of the ARM64 combinations

  5. Klicken Sie auf OK.Click OK.

  6. Erstellen Sie einen bereinigten Build.Perform a clean build.

ARMv7s wird nur vom A6-Prozessor unterstützt, der in iPhone 5 (oder höher) enthalten ist.ARMv7s is supported only by the A6 processor included in the iPhone 5 (or greater). ARMv7-Code ist schneller und kleiner als der ARMv6, funktioniert nur mit dem iPhone 3GS und höher und ist für Apple erforderlich, wenn das iPad oder eine minimale IOS-Version 5,0 verwendet wird.ARMv7 code is faster and smaller than the ARMv6, only works with the iPhone 3GS and later, and is required by Apple when targeting the iPad or a minimum iOS version of 5.0. ARMv6 funktioniert auf allen Geräten, wird jedoch nicht mehr vom Compiler unterstützt, der mit Xcode 4,5 und höher ausgeliefert wurde.ARMv6 works on all devices but is no longer supported by the compiler shipped with Xcode 4.5 and later.

ARM64 ist erforderlich, um IOS 8 auf iPhone 6 oder anderen 64-Bit-Geräten zu unterstützen, und wird von Apple benötigt, wenn neue oder Aktualisier Ende Anwendungen im iTunes App Store übermittelt werden.ARM64 is required to support iOS 8 on iPhone 6 or other 64-bit devices and will be required by Apple when submitting new or updating exiting applications in the iTunes App Store.

Eine umfassende Betrachtung der Funktionen verschiedener IOS-Geräte finden Sie im Dokument zur Gerätekompatibilität von Apple.For a comprehensive look at the capabilities of various iOS devices, check out Apple's Device Compatibility document.

64-Bit und binäre Größe steigen64-bit and binary size increases

Bei der Umstellung von 32-Bit auf 64 Bit müssen IOS-apps sowohl auf der 32-Bit-als auch auf der 64-Bit-Hardware ausgeführt werden.During Apple's transition from 32-bit to 64-bit, iOS apps will need to run on both 32-bit and 64-bit hardware. Aus diesem Grund ermöglicht die xamarin-Unified API es Entwicklern, beide Ziele zu erreichen.Because of this, Xamarin's Unified API allows developers to target both.

Wenn Sie sowohl 32-Bit-als auch 64-Bit-Architekturen als Ziel haben, wird die Größe einer Anwendung erheblich vergrößert.Targeting both 32-bit and 64-bit architectures will significantly increase the size of an application. Dies ermöglicht jedoch neueren Geräten das Ausführen von optimiertem Code, während ältere Geräte weiterhin unterstützt werden.However, doing so will allow newer devices to run optimized code while still supporting older devices.

Wichtig

Wenn beim Senden einer IOS-Anwendung an den iTunes App Store die folgende Meldung angezeigt wird : "Warnung iTMS-9000: fehlende 64-Bit-Unterstützung. Ab dem 1. Februar 2015 müssen neue IOS-apps, die in den App Store hochgeladen werden, Unterstützung für 64-Bit enthalten und mit dem IOS 8 SDK erstellt werden, das in Xcode 6 oder höher enthalten ist. Um 64-Bit im Projekt zu aktivieren, wird empfohlen, die standardmäßige Xcode-Buildeinstellung "Standard Architekturen" zu verwenden, um eine einzelne Binärdatei mit 32-Bit-und 64-Bit-Code zu erstellen.If you receive the following message when submitting an iOS application to the iTunes App Store, "WARNING ITMS-9000: Missing 64-bit support. Starting February 1, 2015, new iOS apps uploaded to the App Store must include 64-bit support and be built with the iOS 8 SDK, included in Xcode 6 or later. To enable 64-bit in your project, we recommend using the default Xcode build setting of “Standard architectures” to build a single binary with both 32-bit and 64-bit code." Sie müssen die unterstützten Architekturen auf eine der verfügbaren ARM64 -Kombinationen umstellen (wie oben gezeigt), Sie neu kompilieren und erneut übermitteln.You need to switch the supported architectures to one of the available ARM64 combination (as shown above), recompile and resubmit.

MacMac

Wichtig

Ab Januar 2018 müssen alle neuen Mac-apps, die an den Mac App Store übermittelt werden, 64 Bit unterstützen.Starting in January 2018, all new Mac apps submitted to the Mac App Store must support 64-bit. Vorhandene Mac App Store-Apps und deren Updates müssen ab dem 2018. Juni 64-Bit-Version unterstützen.Existing Mac App Store apps and their updates must support 64-bit starting in June 2018. Weitere Informationen finden Sie in der Apple-Ankündigung und in einem Leitfaden, in dem beschrieben wird, wie Sie Ihre xamarin. Mac-apps auf 64-Bit aktualisieren.See Apple's announcment and a guide that describes how to update your Xamarin.Mac apps to 64-bit.

Die meisten modernen Macintosh-Computer unterstützen sowohl 32-Bit-als auch 64-Bit-Anwendungen.Most modern Mac computers support both 32-bit and 64-bit applications. MacOS 10,6 (Schnee Leopard) war das letzte Betriebssystem, das auf 32-Bit-Systemen ausgeführt werden konnte.MacOS 10.6 (Snow Leopard) was the last operating system to run on 32-bit systems. Die meisten seit 2010 freigegebenen Macs unterstützen beide Systeme.Most Macs released since 2010 support both systems.

Im Gegensatz zu IOS werden viele der neuen Frameworks, die in neueren Versionen von macOS eingeführt wurden, nur im 64-Bit-Modus unterstützt (cloudkit, eventkit, Gamecontroller, localauthentication, Medialibrary, multipeer Connectivity, notificationcenter, glkit, spritekit, Social und MapKit).Unlike iOS, many of the new frameworks introduced in recent versions of macOS are only supported in 64-bit mode (CloudKit, EventKit, GameController, LocalAuthentication, MediaLibrary, MultipeerConnectivity, NotificationCenter, GLKit, SpriteKit, Social, and MapKit, among others).

Mit dem Unified API können Entwickler auswählen, welche Art von Anwendungen Sie entwickeln möchten: 32-Bit oder 64-Bit.The Unified API allow developers to choose what kind of applications they want to produce: 32-bit or 64-bit.

32-Bit-Anwendungen können auf 32-Bit-und 64-Bit-Macintosh-Computern ausgeführt werden, haben einen Adressraum, der auf 32 Bits beschränkt ist, und erfordern, dass alle Bibliotheken 32 Bits sind.32-bit applications will run on both 32-bit and 64-bit Mac computers, have an address space limited to 32 bits, and require that all libraries are 32 bits.

In der Regel verwenden Sie diesen Modus, wenn Sie über 32-Bit-Abhängigkeiten verfügen, die nicht im 64-Bit-Modus ausgeführt werden, wenn Sie einen kleineren Download benötigen oder wenn es keine Leistungsvorteile bei der Umstellung auf 64-Bit gibt.You will typically use this mode if you have 32-bit dependencies that do not run in 64-bit mode, if you want to have a smaller download, or if there are no performance benefits in moving to 64-bit.

Dieser Modus schränkt ein, da Sie nicht in der Lage sind, viele Frameworks zu verwenden, die in MacOS-Mavericks und MacOS Yosemite verfügbar sind.This mode is limiting as you wont be able to use many frameworks available in macOS Mavericks and macOS Yosemite.

64-Bit-Anwendungen können nur auf 64-Bit-Macintosh-Geräten ausgeführt werden.64-bit applications will only run on 64-bit Mac devices.

Für Mac ist dies der bevorzugte Betriebsmodus, da die meisten verwendeten Macs heute den 64-Bit-Modus unterstützen, und Sie haben Zugriff auf den kompletten Satz von Frameworks, die von Apple bereitgestellt werden.For Mac, this is the preferred mode of operation as most Macs in use today support 64-bit mode, and you have access to the complete set of frameworks provided by Apple.

Aktivieren von 64-Bit-Builds von xamarin. Mac-appsEnabling 64-bit builds of Xamarin.Mac apps

Weitere Informationen zum Entwickeln einer 64-Bit-App mithilfe von xamarin. Mac finden Sie im Handbuch Aktualisieren von xamarin. Mac Unified Applications auf 64-Bit .For information about building a 64-bit app using Xamarin.Mac, please see the Updating Xamarin.Mac Unified applications to 64-bit guide.