Once you upgrade to macOS Sonoma, you have to use Xcode 15 (Xcode 14 won’t work) and might face similar problems described below.
Problem #1: QMake does not work with Xcode 15
When trying to build a project on macOS you get the following error:
failed to parse default search paths from compiler output
Solution: this has been fixed in Qt 6.5.3 (will be also fixed in Qt 5.15.16 commercial), for earlier Qt version you should apply the following patch to
mkspecs/features/toolchain.prf file before compiling. It can be easily backported to Qt 5.15.x - example.
Problem #2: your Qt app crashes when running on macOS < 14 (and iOS < 17)
Crash report will have something like this:
dyld: Symbol not found: __ZTVNSt3__13pmr15memory_resourceE Referenced from: <UUID> qt6/qtbase/build_arm64/libexec/moc Expected in: <UUID> /usr/lib/libc++.1.dylib
Solution: this has been fixed in Qt 6.5.3 (will be also fixed in Qt 5.15.16 commercial), for earlier Qt version you should apply the following patch to some headers before compiling. It can be easily backported to Qt 5.15.x - example.
Problem #3: your Qt app crashes when running on macOS < 13 (and iOS < 15)
Crash reports might look different, our report on macOS 11:
Crashed Thread: 0 mainThread Dispatch queue: com.apple.main-thread Exception Type: EXC_BAD_ACCESS (SIGSEGV) Exception Codes: KERN_INVALID_ADDRESS at 0x0000000008cfe004 Exception Note: EXC_CORPSE_NOTIFY Termination Signal: Segmentation fault: 11 Termination Reason: Namespace SIGNAL, Code 0xb Terminating Process: exc handler  Thread 0 Crashed:: mainThread Dispatch queue: com.apple.main-thread 0 org.qt-project.QtCore 0x0000000109e5a4a9 operator==(QString const&, QString const&) + 9 1 org.qt-project.QtCore 0x0000000109faafd0 QObject::setObjectName(QString const&) + 112 2 com.crystalidea.anytoiso 0x0000000108d0c513 0x108cfe000 + 58643 3 com.crystalidea.anytoiso 0x0000000108d0c128 QAppMainWindow::QAppMainWindow(QWidget*, QFlags<Qt::WindowType>) + 88 4 com.crystalidea.anytoiso 0x0000000108d0ac79 main + 153 5 libdyld.dylib 0x00007fff20480f3d start + 1
It’s caused by the new optimized Xcode 15 linker when linking static libraries.
Binaries using symbols with a weak definition crash at runtime on iOS 14/macOS 12 or older. This impacts primarily C++ projects due to their extensive use of weak symbols. (114813650) (FB13097713)
Solution: add this to your .pro file
LIBS += -Wl,-ld_classic