diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml
index 587abe8..338f86e 100644
--- a/.github/workflows/publish.yaml
+++ b/.github/workflows/publish.yaml
@@ -48,6 +48,3 @@ jobs:
# watchOS build
curl -o watchOS-artefact.tar.gz -L https://github.com/beeware/Python-Apple-support/releases/download/${{ steps.build-vars.outputs.TAG }}/Python-${{ steps.build-vars.outputs.PYTHON_VER }}-watchOS-support.${{ steps.build-vars.outputs.BUILD_NUMBER }}.tar.gz
aws s3 cp watchOS-artefact.tar.gz s3://briefcase-support/python/${{ steps.build-vars.outputs.PYTHON_VER }}/watchOS/Python-${{ steps.build-vars.outputs.PYTHON_VER }}-watchOS-support.${{ steps.build-vars.outputs.BUILD_NUMBER }}.tar.gz
- # visionOS build
- curl -o visionOS-artefact.tar.gz -L https://github.com/beeware/Python-Apple-support/releases/download/${{ steps.build-vars.outputs.TAG }}/Python-${{ steps.build-vars.outputs.PYTHON_VER }}-visionOS-support.${{ steps.build-vars.outputs.BUILD_NUMBER }}.tar.gz
- aws s3 cp visionOS-artefact.tar.gz s3://briefcase-support/python/${{ steps.build-vars.outputs.PYTHON_VER }}/visionOS/Python-${{ steps.build-vars.outputs.PYTHON_VER }}-visionOS-support.${{ steps.build-vars.outputs.BUILD_NUMBER }}.tar.gz
diff --git a/Makefile b/Makefile
index 63e53c8..f625e7f 100644
--- a/Makefile
+++ b/Makefile
@@ -5,6 +5,7 @@
# - iOS - build everything for iOS
# - tvOS - build everything for tvOS
# - watchOS - build everything for watchOS
+# - visionOS - build everything for visionOS
# Current directory
PROJECT_DIR=$(shell pwd)
@@ -57,6 +58,10 @@ TARGETS-watchOS=watchsimulator.x86_64 watchsimulator.arm64 watchos.arm64_32
TRIPLE_OS-watchOS=watchos
VERSION_MIN-watchOS=4.0
+TARGETS-visionOS=xrsimulator.arm64 xros.arm64
+TRIPLE_OS-visionOS=xros
+VERSION_MIN-visionOS=2.0
+
# The architecture of the machine doing the build
HOST_ARCH=$(shell uname -m)
HOST_PYTHON=$(shell which python$(PYTHON_VER))
@@ -452,7 +457,8 @@ $$(PYTHON_LIB-$(sdk)): $$(foreach target,$$(SDK_TARGETS-$(sdk)),$$(PYTHON_LIB-$$
mkdir -p $$(dir $$(PYTHON_LIB-$(sdk)))
lipo -create -output $$@ $$^ \
2>&1 | tee -a install/$(os)/$(sdk)/python-$(PYTHON_VERSION).lipo.log
- dsymutil $$@ -o $$(PYTHON_INSTALL-$(sdk))/Python.dSYM
+ # Disable dSYM production (for now)
+ # dsymutil $$@ -o $$(PYTHON_INSTALL-$(sdk))/Python.dSYM
$$(PYTHON_FRAMEWORK-$(sdk))/Info.plist: $$(PYTHON_LIB-$(sdk))
@echo ">>> Install Info.plist for the $(sdk) SDK"
@@ -517,8 +523,9 @@ $$(PYTHON_STDLIB-$(sdk))/LICENSE.TXT: $$(PYTHON_LIB-$(sdk)) $$(PYTHON_FRAMEWORK-
# Merge the binary modules from each target in the $(sdk) SDK into a single binary
$$(foreach module,$$(wildcard $$(PYTHON_STDLIB-$$(firstword $$(SDK_TARGETS-$(sdk))))/lib-dynload/*),lipo -create -output $$(PYTHON_STDLIB-$(sdk))/lib-dynload/$$(notdir $$(module)) $$(foreach target,$$(SDK_TARGETS-$(sdk)),$$(PYTHON_STDLIB-$$(target))/lib-dynload/$$(notdir $$(module))); )
- # Create dSYM files for each module
- $$(foreach module,$$(wildcard $$(PYTHON_STDLIB-$$(firstword $$(SDK_TARGETS-$(sdk))))/lib-dynload/*),dsymutil $$(PYTHON_STDLIB-$(sdk))/lib-dynload/$$(notdir $$(module)); )
+ # # Disable dSYM production (for now)
+ # # Create dSYM files for each module
+ # $$(foreach module,$$(wildcard $$(PYTHON_STDLIB-$$(firstword $$(SDK_TARGETS-$(sdk))))/lib-dynload/*),dsymutil $$(PYTHON_STDLIB-$(sdk))/lib-dynload/$$(notdir $$(module)); )
# Copy in known-required xcprivacy files.
# Libraries linking OpenSSL must provide a privacy manifest. The one in this repository
@@ -662,7 +669,8 @@ $$(PYTHON_XCFRAMEWORK-$(os))/Info.plist: \
$$(foreach sdk,$$(SDKS-$(os)),cp -r $$(PYTHON_INSTALL-$$(sdk))/bin $$(PYTHON_XCFRAMEWORK-$(os))/$$(SDK_SLICE-$$(sdk)); )
$$(foreach sdk,$$(SDKS-$(os)),cp -r $$(PYTHON_INSTALL-$$(sdk))/lib $$(PYTHON_XCFRAMEWORK-$(os))/$$(SDK_SLICE-$$(sdk)); )
$$(foreach sdk,$$(SDKS-$(os)),cp -r $$(PYTHON_INSTALL-$$(sdk))/platform-config $$(PYTHON_XCFRAMEWORK-$(os))/$$(SDK_SLICE-$$(sdk)); )
- $$(foreach sdk,$$(SDKS-$(os)),cp -r $$(PYTHON_INSTALL-$$(sdk))/Python.dSYM $$(PYTHON_XCFRAMEWORK-$(os))/$$(SDK_SLICE-$$(sdk)); )
+ # Disable dSYM production (for now)
+ # $$(foreach sdk,$$(SDKS-$(os)),cp -r $$(PYTHON_INSTALL-$$(sdk))/Python.dSYM $$(PYTHON_XCFRAMEWORK-$(os))/$$(SDK_SLICE-$$(sdk)); )
ifeq ($(filter $(os),iOS visionOS),$(os))
@echo ">>> Clone testbed project for $(os)"
diff --git a/README.rst b/README.rst
index ecf8c94..d75ef0e 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, watchOS, or visionOS project.
+into a macOS, iOS, tvOS, watchOS project.
**This branch builds a packaged version of Python 3.13**.
Other Python versions are available by cloning other branches of the main
@@ -23,16 +23,15 @@ The macOS package is a re-bundling of the official macOS binary, modified so tha
it is relocatable, with the IDLE, Tkinter and turtle packages removed, and the
App Store compliance patch applied.
-The iOS, tvOS, watchOS, and visionOS packages compiled by this project use the
+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, watchOS, and
-visionOS support.
+to 3.9-3.12. Additional patches have been applied to add tvOS, and watchOS
+support.
The binaries support x86_64 and arm64 for macOS; arm64 for iOS and appleTV
-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
+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:
* macOS 11 (Big Sur) or later, on:
@@ -52,8 +51,6 @@ 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
----------
@@ -74,7 +71,6 @@ 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:
@@ -91,7 +87,7 @@ Each support package contains:
support package;
* ``Python.xcframework``, a multi-architecture build of the Python runtime library.
-On iOS/tvOS/watchOS/visionOS, the ``Python.xcframework`` contains a
+On iOS/tvOS/watchOS, 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.
@@ -137,8 +133,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, watchOS,
-and visionOS, although that hasn't been tested).
+tooling to build build binary wheels for iOS (and potentially for tvOS and watchOS
+although that hasn't been tested).
Historical support
------------------
diff --git a/USAGE.md b/USAGE.md
index a42f0aa..985efc4 100644
--- a/USAGE.md
+++ b/USAGE.md
@@ -22,9 +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, watchOS, and visionOS, you should be able to broadly follow the instructions
+For tvOS, and watchOS, you should be able to broadly follow the instructions
in the iOS guide, changing some platform names in the first script. The testbed projects
-generated on iOS and visionOS may be used as rough references as well.
+generated on iOS may be used as rough references as well.
### Using Objective C