Registry /
type-stubs / pyobjc-framework-extensionkit
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.
ExtensionKit
✓ import ExtensionKit
PyObjC framework wrappers are typically imported as top-level modules named after the framework.
This quickstart verifies the successful installation and import of the `ExtensionKit` Python bindings. Practical use of `ExtensionKit` typically involves building a macOS application extension using Xcode and interacting with it programmatically, making a standalone Python-only example challenging without an external host application context.
import ExtensionKit
import objc
print(f"Successfully imported ExtensionKit wrapper from PyObjC.")
# In a real macOS application development scenario, ExtensionKit types
# (like EXExtension, EXExtensionContext) would be used within the context
# of defining or interacting with an application extension (e.g., share extension,
# custom UI extension).
#
# A direct Python-only example demonstrating meaningful ExtensionKit
# functionality without an accompanying Xcode project and host application
# is not straightforward. This quickstart primarily verifies the installation
# and import of the Python bindings for the framework.
#
# To see available symbols, you could inspect the module:
# print(dir(ExtensionKit))
Debug
Known issues
breakingPyObjC frequently drops support for older Python versions. PyObjC 12.0 dropped support for Python 3.9, and PyObjC 11.0 dropped Python 3.8. Ensure your Python version is compatible with the PyObjC version you are installing.fixUpgrade your Python environment to Python 3.10 or later for PyObjC 12.x. Always check `requires_python` on PyPI or the PyObjC changelog for specific version requirements.
affects: 11.0, 12.0
breakingPyObjC 11.1 changed how initializer methods (`init` family) are modeled, now correctly reflecting that they 'steal' a reference to `self` and return a new one, as per clang's Automatic Reference Counting (ARC) documentation. This affects object lifecycle and reference counting.fixReview code that interacts with object initialization, especially custom subclasses or factory methods, to ensure correct reference handling. Explicit memory management is rarely needed in Python, but understanding the underlying Objective-C semantics is crucial for correct behavior.
affects: >=11.1
gotchaVersion 10.3 introduced a change affecting the use of `__init__` when a class or its superclasses implement a custom `__new__` method, causing it to break. This was partially reverted in version 10.3.1 to reintroduce the ability to use `__init__` in such cases.fixIf experiencing issues with `__init__` and custom `__new__` implementations after upgrading to 10.3, ensure you are using 10.3.1 or later. Avoid relying on `__init__` if using PyObjC's provided `__new__` method, as detailed in the 10.3 release notes.
affects: 10.3
breaking`objc.classAddMethods` no longer supports arbitrary callable objects for adding methods to Objective-C classes.fixFor `objc.classAddMethods`, ensure the added methods are appropriate for Objective-C method dispatch. Review and adapt code that uses `objc.classAddMethods` with complex callable types.
affects: >=12.1
breakingEntire framework bindings may be removed if Apple deprecates and removes the underlying macOS framework. For example, the `IMServicePlugIn` bindings were removed in PyObjC 10.0 because the framework was deprecated in macOS 10.13 and removed in macOS 14.fixStay informed about macOS framework deprecations. If migrating to a new macOS version, consult the PyObjC changelog for any removed framework bindings and update your application to use alternative APIs or frameworks.
affects: Potentially all versions
Upgrade
Version history
12.2latest on PyPI · released May 30, 2026
Audit
Dependencies
pyobjc-corerequiredProvides the core Python-Objective-C bridge functionality required by all PyObjC framework wrappers.
pyobjc-framework-CocoarequiredExtensionKit often relies on fundamental types and services provided by the Cocoa framework.