Install & Compatibility
Where this runs
tested against v? · pip install
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslpy 3.10–3.920 runs
build_error
glibcpy 3.10–3.920 runs
build_error
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
ARSession
✓ from ARKit import ARSession
ARWorldTrackingConfiguration
✓ from ARKit import ARWorldTrackingConfiguration
This quickstart demonstrates how to import key ARKit classes like `ARSession` and `ARWorldTrackingConfiguration` using PyObjC. It shows basic object instantiation and checks for ARKit availability, which is crucial as it's an Apple-specific framework. The example also calls a class method (`isSupported()`) to illustrate interaction with the underlying Objective-C API.
import objc
from ARKit import ARSession, ARWorldTrackingConfiguration
from Foundation import NSObject # Useful for general Cocoa classes
# ARKit is a macOS/iOS framework, so check for its presence
if not objc.is_defined('ARSession'):
print("ARKit framework is not available on this system or macOS version.")
else:
print("ARKit framework is available.")
# Allocate and initialize an ARSession
session = ARSession.alloc().init()
print(f"Created ARSession object: {session}")
# Create a configuration for the session
config = ARWorldTrackingConfiguration.new()
print(f"Created ARWorldTrackingConfiguration object: {config}")
# Check if ARSession is supported on the device
is_supported = ARSession.isSupported()
print(f"ARSession.isSupported(): {is_supported}")
# In a full application, you would run the session like this:
# session.runWithConfiguration_(config)
# print("ARSession started.")
Debug
Known issues
breakingThe ARKit framework bindings were first introduced in PyObjC version 12.0. If your project targets an older PyObjC version (e.g., 11.x or prior), the `ARKit` framework will not be available.fixUpgrade `pyobjc-framework-arkit` to version 12.0 or later to access ARKit bindings.
affects: <12.0
breakingPyObjC 12.0 dropped support for Python 3.9. Users must ensure their Python environment is running Python 3.10 or a newer version.fixUpgrade your Python environment to 3.10 or newer before upgrading `pyobjc-framework-arkit` to version 12.0 or later.
affects: 12.0+
gotchaPyObjC and its framework wrappers, including `pyobjc-framework-arkit`, are exclusively for macOS and iOS (via cross-compilation tools like BeeWare). This library cannot be used on Windows, Linux, or other non-Apple operating systems.fixEnsure your development and deployment environment is macOS or an iOS-based platform.
affects: all
gotchaStarting with PyObjC 11.1, the core bridge's Automatic Reference Counting (ARC) behavior for Objective-C `init` methods was aligned more strictly with `clang`'s documentation. `init` methods now correctly 'steal' a reference to `self` and return a new one. This change might subtly affect object lifecycle and memory management, especially if you have custom `init` implementations or rely on previous PyObjC behavior.fixReview object lifecycle management, particularly for custom `init` method implementations, when migrating from PyObjC versions older than 11.1.
affects: 11.1+
gotchaPyObjC currently does not support the experimental free-threading (PEP 703) introduced in Python 3.13. Running PyObjC with free-threading enabled in Python 3.13 may lead to undefined behavior, crashes, or incorrect functionality.fixAvoid using PyObjC in a free-threaded Python 3.13 environment. Monitor PyObjC releases for official free-threading support.
affects: 10.3+, for Python 3.13 users
Upgrade
Version history
12.2latest on PyPI · released May 30, 2026
Audit
Dependencies
pyobjc-corerequiredCore bridge library required for all PyObjC framework bindings.