Xcode 27 Beta 5 unable to link Core Image kernels unless MACOSX_DEPLOYMENT_TARGET = macOS 27

The Metal linker in the latest Xcode 27 Beta 5 is failing to link against the Core Image framework unless the current MACOSX_DEPLOYMENT_TARGET is set to macOS 27 Golden Gate Beta.

MTLLINKER_FLAGS = -framework CoreImage

It looks like the CoreImage framework that shipped in the Beta 5 SDK fails to include versions of CoreImage.metallib to support prior versions of macOS. If your current deployment target is, for example, macOS 13.5, the build log will show a warning:

air-lld: warning: ignoring file '/Applications/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreImage.framework/Versions/A/CoreImage.metallib', file AIR version (2.9) is bigger than the one of the target being linked (2.5)

...and produce this error:

air-lld: error: symbol(s) not found for target 'air64_v25-apple-macosx13.5.0' metal: error: air-lld command failed with exit code 1 (use -v to see invocation)

The above warning + error happen for any MACOSX_DEPLOYMENT_TARGET up to and including macOS 26. Only when setting it to macOS 27 does the linker succeed.

Linking against the Core Image framework is required to package your own CIKernels that use Metal’s [[stitchable]] attribute, in lieu of the previous method based on: MTL_COMPILER_FLAGS = -fcikernel and MTLLINKER_FLAGS = -fcikernel.

Has anyone else run into this very same issue? (Filed as FB24345950) Any workarounds you’d be willing to share? Would pulling an older version of the CoreImage framework from a previous SDK, and linking explicitly against it work too?

Thanks! Gabe

Xcode 27 Beta 5 unable to link Core Image kernels unless MACOSX_DEPLOYMENT_TARGET = macOS 27
 
 
Q