diff --git a/README.rst b/README.rst
index 2317b74..06fde6c 100644
--- a/README.rst
+++ b/README.rst
@@ -2,7 +2,7 @@ Python Apple Support
====================
This is a meta-package for building a version of Python that can be embedded
-into a macOS, iOS, tvOS or watchOS project.
+into a macOS, iOS, tvOS, watchOS, or visionOS project.
**This branch builds a packaged version of Python 3.14**.
Other Python versions are available by cloning other branches of the main
@@ -16,21 +16,24 @@ repository:
It works by downloading, patching, and building a fat binary of Python and
selected pre-requisites, and packaging them as frameworks that can be
-incorporated into an XCode project. The binary modules in the Python standard
+incorporated into an Xcode project. The binary modules in the Python standard
library are distributed as binaries that can be dynamically loaded at runtime.
The macOS package is a re-bundling of the official macOS binary, modified so that
it is relocatable, with the IDLE, Tkinter and turtle packages removed, and the
App Store compliance patch applied.
-The iOS, tvOS and watchOS packages compiled by this project use the official
-`PEP 730 `__ code that is part of Python 3.13
-to provide iOS support; the relevant patches have been backported to 3.9-3.12.
-Additional patches have been applied to add tvOS and watchOS support.
+The iOS, tvOS, watchOS, and visionOS packages compiled by this project use the
+official `PEP 730 `__ code that is part of
+Python 3.13 to provide iOS support; the relevant patches have been backported
+to 3.9-3.12. Additional patches have been applied to add tvOS, watchOS, and
+visionOS support.
The binaries support x86_64 and arm64 for macOS; arm64 for iOS and appleTV
-devices; and arm64_32 for watchOS devices. It also supports device simulators on
-both x86_64 and M1 hardware. This should enable the code to run on:
+devices; arm64_32 for watchOS devices; and arm64 for visionOS devices. It also
+supports device simulators on both x86_64 and M1 hardware, except for visionOS,
+for which x86_64 simulators are officially unsupported. This should enable the
+code to run on:
* macOS 11 (Big Sur) or later, on:
* MacBook (including MacBooks using Apple Silicon)
@@ -49,6 +52,8 @@ both x86_64 and M1 hardware. This should enable the code to run on:
* Apple TV (4th gen or later)
* watchOS 4.0 or later, on:
* Apple Watch (4th gen or later)
+* visionOS 2.0 or later, on:
+ * Apple Vision Pro
Quickstart
----------
@@ -69,6 +74,7 @@ repository, and then in the root directory, and run:
* ``make iOS`` to build everything for iOS.
* ``make tvOS`` to build everything for tvOS.
* ``make watchOS`` to build everything for watchOS.
+* ``make visionOS`` to build everything for visionOS.
This should:
@@ -76,16 +82,16 @@ This should:
2. Patch them as required for compatibility with the selected OS
3. Build the packages as Xcode-compatible XCFrameworks.
-The resulting support packages will be packaged as a ``.tar.gz`` file
+The resulting support packages will be packaged as ``.tar.gz`` files
in the ``dist`` folder.
Each support package contains:
* ``VERSIONS``, a text file describing the specific versions of code used to build the
support package;
-* ``Python.xcframework``, a multi-architecture build of the Python runtime library
+* ``Python.xcframework``, a multi-architecture build of the Python runtime library.
-On iOS/tvOS/watchOS, the ``Python.xcframework`` contains a
+On iOS/tvOS/watchOS/visionOS, the ``Python.xcframework`` contains a
slice for each supported ABI (device and simulator). The folder containing the
slice can also be used as a ``PYTHONHOME``, as it contains a ``bin``, ``include``
and ``lib`` directory.
@@ -96,11 +102,11 @@ needed to build packages. This is required because Xcode uses the ``xcrun``
alias to dynamically generate the name of binaries, but a lot of C tooling
expects that ``CC`` will not contain spaces.
-Each slice of an iOS/tvOS/watchOS XCframework also contains a
+Each slice of an iOS/tvOS/watchOS/visionOS XCframework also contains a
``platform-config`` folder with a subfolder for each supported architecture in
that slice. These subfolders can be used to make a macOS Python environment
-behave as if it were on an iOS/tvOS/watchOS device. This works in one of two
-ways:
+behave as if it were on an iOS/tvOS/watchOS/visionOS device. This works in one
+of two ways:
1. **A sitecustomize.py script**. If the ``platform-config`` subfolder is on
your ``PYTHONPATH`` when a Python interpreter is started, a site
@@ -116,9 +122,9 @@ ways:
environment to build a wheel, these patches will also be applied to the
isolated build environment that is created.
-iOS distributions also contain a copy of the iOS ``testbed`` project - an Xcode
-project that can be used to run test suites of Python code. See the `CPython
-documentation on testing packages
+iOS and visionOS distributions also contain a copy of the iOS or visionOS
+``testbed`` project - an Xcode project that can be used to run test suites of
+Python code. See the `CPython documentation on testing packages
`__ for
details on how to use this testbed.
@@ -131,8 +137,8 @@ Building binary wheels
This project packages the Python standard library, but does not address building
binary wheels. Binary wheels for macOS can be obtained from PyPI. `Mobile Forge
`__ is a project that provides the
-tooling to build build binary wheels for iOS (and potentially for tvOS and
-watchOS, although that hasn't been tested).
+tooling to build build binary wheels for iOS (and potentially for tvOS, watchOS,
+and visionOS, although that hasn't been tested).
Historical support
------------------
diff --git a/USAGE.md b/USAGE.md
index 096f71b..6565dd4 100644
--- a/USAGE.md
+++ b/USAGE.md
@@ -2,10 +2,10 @@
## The easy way
-The easist way to use these packages is by creating a project with `Briefcase
-`__. Briefcase will download pre-compiled
-versions of these support packages, and add them to an Xcode project (or
-pre-build stub application, in the case of macOS).
+The easist way to use these packages is by creating a project with
+(Briefcase)[https://github.com/beeware/briefcase]. Briefcase will download
+pre-compiled versions of these support packages, and add them to an Xcode project
+(or pre-build stub application, in the case of macOS).
## The manual way
@@ -22,8 +22,9 @@ guides:
* [macOS](https://docs.python.org/3/using/mac.html)
* [iOS](https://docs.python.org/3/using/ios.html#adding-python-to-an-ios-project)
-For tvOS and watchOS, you should be able to broadly follow the instructions in
-the iOS guide.
+For tvOS, watchOS, and visionOS, you should be able to broadly follow the instructions
+in the iOS guide. The testbed projects generated on iOS and visionOS may be used as
+rough references as well.
### Using Objective C