转自:docs.elementscompiler.com/Platforms/C…
CPU 架构
在为 Cocoa 平台构建时,Elements 允许您选择构建不同的 CPU 架构,具体取决于您希望支持的目标设备和操作系统版本。Elements 允许创建所谓的“通用二进制文件”或“胖二进制文件”,其中可以包含用于多个平台(例如 32 位和 64 位)的可执行代码。
您可以为您的应用程序选择一组主要架构,其中可能包含一个或多个选项,具体取决于 SDK abd 版本。在iOS、tvOS和watchOS上,除了为设备部署选择架构外,您还可以选择单独的架构在模拟器中运行。
苹果系统
在macOS 上,目前支持一种架构:64 位 Intel,官方称为x86_64,有时也简称为x64. Elements 和 macOS 的未来版本可能会增加对其他平台的支持(例如,如果 Apple 发布基于 ARM 的 Mac)。
Elements 不支持i386macOS 的 32 位架构,因为 Mac OS X 10.5 Leopard 引入的“现代 Objective-C 运行时”在 32 位上不受支持。现代 Objective-C 运行时是ARC的先决条件,以及如今 Cocoa 开发人员认为理所当然的许多其他运行时特性。此外,32 位 Mac 应用程序在今天基本上是无关紧要的,从 macOS 10.14 开始弃用,从 macOS 10.15 开始完全不受支持。
iOS 和 iPadOS
在iOS和 iPadOS 上,Elements 支持三种设备部署架构:
arm64是当前的 64 位 ARM CPU 架构,自 iPhone 5S 及更高版本(6、6S、SE 和 7)、iPad Air、Air 2 和 Pro 以及 A7 及更高版本芯片开始使用。armv7s(又名Swift,不要与同名语言混淆),用于 iPhone 5、iPhone 5C 和 iPad 4 上的 Apple A6 和 A6X 芯片。armv7,32 位 ARM CPU 的旧变体,用于 A5 和更早版本。
2009 年之前发布的非常旧的 iOS 设备具有armv6CPU,当前的 iOS SDK 和 Elements 都不再支持这些设备。
在Project Settings中,您可以选择为一种或多种架构构建项目。您可以显式选择架构,也可以选择Default,在这种情况下,不会将架构硬编码到项目设置中,并且项目将自动根据一组默认架构构建(当前arm64仅)。这是最具前瞻性的设置,因为当您针对较新的 SDK 重建项目时,它将自动包含新架构。
arm64仅适用于 iOS 7.0 或更高版本。armv7s仅在 iOS 6.0 或更高版本中可用。
排除架构时要谨慎选择。一个应用程序构建armv7将在所有当前的 iOS 设备上运行,即使是那些支持更新架构的设备(它将在 iPhone 5S 和更高版本上以 32 位运行)。但另一方面,没有 armv7构建的应用程序将无法在 iPhone 4/4S 或最初的 iPad mini 等旧设备上运行。
除了设备架构之外,项目设置还允许您在适当的情况下(即在 iOS 上)选择模拟器的架构。
x64_64(即 64 位 Intel)从 iOS 7.0 开始是可选的。i386(即 32 位 Intel)是 iOS 6.1 及更低版本的唯一选项。
与设备架构一样,为模拟器架构提供了一个特殊的**匹配设备选项。**选择此选项将再次不会对项目中的任何架构进行硬编码;相反,Elements 将根据您正在构建的设备架构自动选择适当的模拟器架构。如果您的应用程序包含armv7和/或armv7s,它将包含i386在模拟器架构中;如果您arm64在设备上构建,它将x86_64在模拟器上构建。
就像在设备上一样,模拟器构建可以是通用二进制文件,并包括两个(未来可能更多)架构。如果使用这两种架构构建,您可以在 32 位和 64 位版本的Simulator中测试您的应用程序,而无需重新构建。
电视操作系统
在tvOS上,Elements 支持一种用于设备部署的架构,一种用于模拟器:
arm64是当前的 64 位 ARM CPU 架构,用于 Apple TV 4x64_64(即64位Intel)在模拟器中使用
手表操作系统
在watchOS上,Elements 支持两种架构,分别用于设备部署和模拟器
arm64_32是 arm64 的变体,指针大小为 32 位,用于 Apple Watch Series 4 及更高版本。armv7k是常规 armv7 的 32 位变体,用于从原始 Apple Watch 到 Series 3。x86_64(即64位Intel)在模拟器中使用i386(即 32 位 Intel)在模拟器中使用
用于 Mac 的 UIKit
在UIKit for Mac上,支持与macOS上相同的架构,目前仅x86_64.