My Mac Catalyst app (distributed via TestFlight) crashes instantly at launch — before main() — on macOS 26.5.1 (25F80) when archived with Xcode 27 beta 3. The same code archived with Xcode 26.5 (GA) launches fine.
Crash excerpt:
Termination Reason: Namespace DYLD, Code 4, Symbol missing Symbol not found: _UIFontTextStyleBody Referenced from: <...> /Applications/Paku.app/Contents/MacOS/Paku Expected in: <...> /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (terminated at launch; ignore backtrace)
What appears to be happening
The symbol comes from completely ordinary UIKit code — e.g. UIFont.preferredFont(forTextStyle: .body). When linking with the Xcode 27 beta 3 SDK, the two-level namespace bind for _UIFontTextStyleBody in my binary points at AppKit, i.e. the beta SDK's AppKit.tbd declares (re-exports) the UIKit text-style constants for Catalyst.
But the shipping OS doesn't provide that: on macOS 26.5.1, _UIFontTextStyleBody is absent from both the installed AppKit binary (checked with dyld_info -exports /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit) and the Xcode 26.5 GA SDK's AppKit.tbd. So any binary linked against the beta SDK hard-binds the symbol to AppKit and then fatally fails to bind on current GA macOS — a 100%-reproducible launch crash for every user not on the macOS 27 beta.
Steps to reproduce
- Mac Catalyst target that uses any UIFont.TextStyle constant (e.g. .preferredFont(forTextStyle: .body)).
- Archive with Xcode 27 beta 3 and distribute via TestFlight.
- Launch on macOS 26.5.1 → immediate dyld abort with the report above.
Questions
- Is this a known issue with the macOS 27 beta SDK's AppKit re-export list? It looks like these UIKit constants are being moved/re-exported through AppKit in the 27 cycle, but without availability/weak-linking info that would let binaries back-deploy to macOS 26.
- Is the intended behavior that Catalyst apps built with the 27 beta SDK simply can't run on macOS 26? If so, should App Store Connect / TestFlight have rejected or flagged the upload?