Random Objective-C, Swift and Xcode fun

Objective-C Incompatible Category Definitions

Working on larger Xcode projects with many dependencies, sometimes a warning like this pops up in the output of xcodebuild:

Some object files have incompatible Objective-C category definitions. Some category metadata may be lost. All files containing Objective-C categories should be built using the same compiler.

This post explores what causes this message, and how to figure out where it’s coming from.


__cxa_throw and fonts

Sometimes when working in Xcode with the All Exceptions breakpoint turned on, when starting the app it pauses on the __cxa_throw symbol, but we can continue without crashing. This post will cover one of the common causes, missing font entitlements.



The popular compiler explorer tool godbolt1 has added support for Swift language. Godbolt let’s you enter some code in a browser and shows the assembly output. It shows off the power of the LLVM optimization passes: