ronaldoussoren / pyobjc

The Python <-> Objective-C Bridge with bindings for macOS frameworks
https://pyobjc.readthedocs.io
545 stars 46 forks source link

Xcode 14 and older macOS versions #477

Open ronaldoussoren opened 2 years ago

ronaldoussoren commented 2 years ago

The release notes for Xcode 14 beta 2 contain the following known issue:

  _Xcode 14 supports building applications that target macOS 10.13, iOS 11, tvOS 11, watchOS 4, and later. Xcode incorrectly shows some unsupported deployment targets in the project editor. (93995391)_

This seems to indicate that Xcode 14 won't be able to build binaries that target macOS 10.9, which is the current deployment target for the python.org installers and PyObjC's binary wheels.

Building PyObjC 9 using Xcode 13 isn't really an option because the SDK included in Xcode 13 doesn't include symbols from macOS 13 (in particular protocol definitions, PyObjC 9 doesn't have other changes to the C extensions at this point).

For some framework bindings we can get away with including static copies of the protocol definitions in the extension, but that won't work for new frameworks.

ronaldoussoren commented 2 years ago

Current plan: Switch to binary wheels that support macOS 10.13 or later. Users targeting 10.9 can still build their own wheels.

ronaldoussoren commented 1 year ago

Current wheels still target 10.9 while using Xcode 14. So far nobody has complained, but I haven't tested on 10.9 yet.