Skip to content

Commit 1f36a15

Browse files
committed
Clarify iOS specification.
1 parent 37625a3 commit 1f36a15

File tree

1 file changed

+30
-19
lines changed

1 file changed

+30
-19
lines changed

source/specifications/platform-compatibility-tags.rst

Lines changed: 30 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -209,19 +209,19 @@ with macOS 11 or later.
209209
macOS binaries can be compiled for a single architecture, or can include support
210210
for multiple architectures in the same binary (sometimes called "fat" binaries).
211211
To indicate support for a single architecture, the value of ``arch`` must match
212-
the value of :py:func:`sysconfig.get_platform()` on the system. To indicate
212+
the value of :py:func:`platform.machine()` on the system. To indicate
213213
support multiple architectures, the ``arch`` tag should be an identifier from
214214
the following list that describes the set of supported architectures:
215215

216216
============== ========================================
217217
``arch`` Architectures supported
218218
============== ========================================
219-
``universal2`` ``arm64``, ``x86-64``
220-
``universal`` ``ppc64``, ``i386``, ``x86-64``
221-
``intel`` ``i386``, ``x86-64``
222-
``fat`` ``ppc``, ``ppc64``, ``i386``, ``x86-64``
219+
``universal2`` ``arm64``, ``x86_64``
220+
``universal`` ``ppc64``, ``i386``, ``x86_64``
221+
``intel`` ``i386``, ``x86_64``
222+
``fat`` ``ppc``, ``ppc64``, ``i386``, ``x86_64``
223223
``fat32`` ``ppc``, ``i386``
224-
``fat64`` ``ppc64``, ``x86-64``
224+
``fat64`` ``ppc64``, ``x86_64``
225225
============== ========================================
226226

227227
The minimum supported macOS version may also be constrained by architecture. For
@@ -264,20 +264,31 @@ iOS
264264
---
265265

266266
iOS uses the schema :file:`ios_{x}_{y}_{arch}_{sdk}`, indicating compatibility with
267-
iOS ``x.y`` or later, on the ``arch`` architecture, using the ``sdk`` SDK. The
268-
version number always includes a major and minor version, even if Apple's
269-
official version numbering only refers to the major value.
267+
iOS ``x.y`` or later, on the ``arch`` architecture, using the ``sdk`` SDK.
270268

271-
The iOS platform has two SDKs: ``iphoneos`` for physical devices; and
272-
``iphonesimulator`` for simulated devices. These SDKs have the same API surface,
273-
but are incompatible at the binary level, even if they are running on the same
274-
architecture. Code compiled for an arm64 simulator will not run on an arm64
275-
device.
276-
277-
The ``iphonesimulator`` SDK supports 2 architectures: ``arm64`` and ``x86_64``.
278-
The ``iphoneos`` SDK only supports the ``arm64`` architecture.
279-
280-
By default, Python is compiled with a minimum iOS compatibility version of 13.0.
269+
The value of ``x`` and ``y`` correspond to the major and minor version number of
270+
the iOS release, respectively. They must both be positive integers. The version
271+
number always includes a major *and* minor version, even if Apple's official
272+
version numbering only refers to the major value. For example, a
273+
``ios_13_0_arm64_iphonesimulator`` indicates compatibility with iOS 13 or later.
274+
275+
The value of ``arch`` must match the value of :py:func:`platform.machine()` on
276+
the system.
277+
278+
The value of ``sdk`` must be either ``iphoneos`` (for physical devices), or
279+
``iphonesimulator`` (for device simulators). These SDKs have the same API
280+
surface, but are incompatible at the binary level, even if they are running on
281+
the same CPU architecture. Code compiled for an arm64 simulator will not run on
282+
an arm64 device.
283+
284+
The combination of :file:`{arch}_{sdk}` is referred to as the "multiarch". There
285+
are three possible values for multiarch:
286+
287+
* ``arm64_iphoneos``, for physical iPhone/iPad devices. This includes every
288+
iOS device manufactured since ~2015;
289+
* ``arm64_iphonesimulator``, for simulators running on Apple Silicon macOS
290+
hardware; and
291+
* ``x86_64_iphonesimulator``, for simulators running on x86_64 hardware.
281292

282293
Use
283294
===

0 commit comments

Comments
 (0)