Qt für macOS
Mit Qt für macOS lassen sich Anwendungen für die Mac -Computer von Apple erstellen.
Um mit Qt für macOS zu entwickeln, befolgen Sie die Anleitung für den Einstieg; sehen Sie sich anschließend die Qt-Beispiele und verwandte Themen an.
Unterstützte Konfigurationen
Die folgenden Versionen der Build-Umgebung und der Zielplattform werden von Qt 6.12 unterstützt.
| Build-Umgebung | Zielplattform | Architektur |
|---|---|---|
| Xcode 16 (macOS 15 SDK) oder höher | macOS 14.4 oder höher (einschließlich macOS 26) | x86_64, x86_64h, arm64 |
Hinweis: Apples Versprechen zur Vorwärtskompatibilität für macOS stellt im Allgemeinen sicher, dass Qt-Anwendungen auch auf neuen Betriebssystemversionen weiterhin einwandfrei laufen. Eventuell auftretende Probleme werden gemäß den Qt-Richtlinien zu Verzweigungen und Support priorisiert und eingeplant. Die Unterstützung neuer Betriebssystemfunktionen ist in der Regel nicht in Patch-Versionen enthalten.
Build-Umgebung
Die Build-Umgebung für macOS wird durch die Xcode-Anwendung von Apple bereitgestellt, die sowohl die Toolchain (Compiler, Linker und andere Werkzeuge) als auch das macOS-Plattform-SDK (Header und Bibliotheken) umfasst, mit denen Sie Ihre Anwendung erstellen und verknüpfen. Zusammen legen diese fest, wie Ihre Anwendung erstellt wird.
Apple empfiehlt generell (und verlangt im Falle des App Stores), dass Anwendungen mit dem neuesten verfügbaren SDK erstellt werden. Daher sollten Sie stets die neueste verfügbare Xcode-Version von Apple verwenden. Dies kann ein Upgrade der macOS-Version Ihres Systems erfordern, da neue Xcode-Versionen unter Umständen nicht auf älteren macOS-Versionen laufen.
Hinweis: Die macOS-Build-Umgebung wird immer vollständig durch die von Ihnen verwendete Xcode-Version (d. h. deren Toolchain und SDKs) definiert –nicht durch die Version von macOS, auf der Sie Xcode ausführen.
Deaktivieren von Verhaltensänderungen
Ein Nachteil bei der Verwendung der neuesten Xcode-Version und des neuesten SDK zum Erstellen Ihrer Anwendung besteht darin, dass die macOS-System-Frameworks manchmal anhand des SDK, auf dessen Basis Sie Ihre Anwendung erstellt haben, entscheiden, ob Verhaltensänderungen aktiviert werden oder nicht.
Auf diese Weise kann Apple sicherstellen, dass Binärdateien, die mit älteren SDKs erstellt wurden, auch auf neueren macOS-Versionen weiterhin ohne Regressionen laufen.
Als beispielsweise der Dunkelmodus in macOS 10.14 Mojave eingeführt wurde, behandelte macOS nur Anwendungen, die mit dem 10.14-SDK erstellt wurden, als den Dunkelmodus unterstützend, während Anwendungen, die mit früheren SDKs erstellt wurden, weiterhin das standardmäßige Erscheinungsbild des Hellmodus beibehielten.
Das Erstellen mit einer älteren Xcode-Version unter Verwendung eines älteren SDKs ist eine Möglichkeit, solche Verhaltensänderungen zu umgehen, stellt jedoch eine Lösung der letzten Wahl dar und sollte nur angewendet werden, wenn es für Ihre Anwendung keine anderen Möglichkeiten gibt, das Problem zu umgehen.
Zielplattformen
Beim Erstellen für macOS kommt eine Technik namens „Weak Linking“ zum Einsatz, die es Ihnen ermöglicht, Ihre Anwendung anhand der Header und Bibliotheken des neuesten Plattform-SDK zu erstellen, während Ihre Anwendung dennoch auf macOS-Versionen bereitgestellt werden kann, die älter sind als die SDK-Version. Wenn die Binärdatei auf einer macOS-Version ausgeführt wird, die älter ist als das SDK, mit dem sie erstellt wurde, prüft Qt zur Laufzeit, ob eine Plattformfunktion verfügbar ist, bevor sie genutzt wird.
Theoretisch würde dies die Ausführung Ihrer Anwendung auf jeder einzelnen veröffentlichten macOS-Version ermöglichen, doch aus praktischen (und technischen) Gründen gibt es eine Untergrenze für diesen Bereich, die als „Bereitstellungsziel“ Ihrer Anwendung bezeichnet wird. Wird die Binärdatei auf einer macOS-Version gestartet, die unterhalb des Bereitstellungsziels liegt, gibt Qt eine Fehlermeldung aus und die Anwendung wird nicht ausgeführt.
Qt gibt das Bereitstellungsziel über die Variablen CMAKE_OSX_DEPLOYMENT_TARGET Variablen „ QMAKE_MACOSX_DEPLOYMENT_TARGET “ aus, die standardmäßig auf das für Qt unterstützte Mindest-Bereitstellungsziel gesetzt sind.
Sie müssen das Deployment-Target nur erhöhen, wenn Ihr eigener Code APIs verwendet, die in einer höheren macOS-Version hinzugefügt wurden als der von Qt standardmäßig verwendeten, und Sie keine „ @available “-Prüfungen einsetzen, um deren Verwendung zur Laufzeit abzusichern.
So erhöhen Sie das Deployment-Target mit CMake:
set(CMAKE_OSX_DEPLOYMENT_TARGET "42.0")oder mit qmake:
QMAKE_MACOSX_DEPLOYMENT_TARGET = 42.0Hinweis: Sie sollten das Bereitstellungsziel nicht unter den von Qt festgelegten Standardwert senken. Dies führt wahrscheinlich zu Abstürzen zur Laufzeit, wenn die Binärdatei auf einer macOS-Version bereitgestellt wird, die älter ist als die von Qt erwartete.
Weitere Informationen zur SDK-basierten Entwicklung auf Apple-Plattformen finden Sie in der Entwicklerdokumentation von Apple.
Architekturen
Standardmäßig wird Qt für die Architektur Ihres Entwicklungsrechners kompiliert – entweder „ x86_64 “, wenn Sie einen Intel-Mac verwenden, oder „ arm64 “, wenn Sie einen Apple-Silicon-Mac verwenden.
Um für andere Architekturen zu kompilieren, können Sie die Variablen CMAKE_OSX_ARCHITECTURES Variablen ` QMAKE_APPLE_DEVICE_ARCHS ` und ` x86_64 ` in Ihren Projektdateien oder in der Befehlszeile verwenden. Dies ermöglicht es Ihnen sowohl, für eine andere Architektur zu kompilieren („Cross-Compile“), als auch universelle (multiarchitekturfähige) Binärdateien zu erstellen. Um beispielsweise Ihre Anwendung mit CMake sowohl für ` ` als auch für ` arm64 ` zu kompilieren:
cmake ~/src/myapp -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64"oder mit qmake:
qmake ~/src/myapp QMAKE_APPLE_DEVICE_ARCHS="x86_64 arm64"Bei der Angabe der Architekturen in einer Projektdatei sollten diese nicht in Anführungszeichen gesetzt werden, z. B.:
TEMPLATE = app
SOURCES = main.cpp
QMAKE_APPLE_DEVICE_ARCHS = x86_64 arm64Unterstützung von Unterarchitekturen auf Intel-Macs
Zusätzlich zur Basisarchitektur „ x86_64 “ unterstützt Qt auch die Unterarchitektur „ x86_64h “ („Haswell“), die die Leistung auf Intel-Macs verbessert.
Erste Schritte
Xcode installieren
Xcode ist eine Voraussetzung für die Entwicklung mit Qt für macOS. Es kann über den App Store installiert oder von der Apple-Entwickler-Website heruntergeladen werden.
Starten Sie Xcode nach der Installation bitte einmal, damit alle erforderlichen Abhängigkeiten installiert werden können.
Überprüfen Sie anschließend mithilfe des Tools „ xcode-select “, ob das System die richtige Xcode-Installation verwendet.
$ xcode-select -print-path
/Applications/Xcode.app/Contents/DeveloperSollte die Ausgabe nicht den Erwartungen entsprechen, wählen Sie die Xcode-Installation explizit aus.
$ sudo xcode-select --switch /Applications/Xcode.appInstallation oder Erstellung von Qt
Um Qt zu installieren oder zu kompilieren, befolgen Sie die allgemeine Anleitung „Erste Schritte mit Qt “.
Sie können auch den Abschnitt „Alternative Möglichkeiten zur Installation von Qt unter macOS“ lesen, um Informationen zur Installation von Qt über Homebrew zu erhalten.
Xcode-Projektdateien erstellen
Standardmäßig erzeugen CMake und qmake Projektdateien im Makefile-Format. Wenn Sie Ihre Anwendung lieber direkt in Xcode erstellen und debuggen möchten, können Sie stattdessen die Erstellung eines Xcode-Projekts anfordern:
cmake ~/src/myapp -GXcodeoder mit qmake:
qmake ~/src/myapp -spec macx-xcodeBereitstellung von Anwendungen unter macOS
macOS-Anwendungen werden in der Regel als eigenständige Anwendungsbündel bereitgestellt. Das Anwendungsbündel enthält die ausführbare Datei der Anwendung sowie Abhängigkeiten wie die Qt-Bibliotheken, Plugins, Übersetzungen und andere Ressourcen, die Sie möglicherweise benötigen. Bibliotheken von Drittanbietern wie Qt werden normalerweise nicht systemweit installiert; jede Anwendung stellt ihre eigene Kopie bereit.
Um Ihre Anwendung mit CMake als Anwendungsbundle zu erstellen, setzen Sie die MACOSX_BUNDLE Eigenschaft für Ihr ausführbares Ziel wie folgt ein:
qt_add_executable(MyApp)
if(APPLE)
set_target_properties(MyApp PROPERTIES MACOSX_BUNDLE TRUE)
endif()Bei qmake sind Bündel standardmäßig aktiviert. Setzen Sie in Ihrer Projektdatei (.pro) die Option „ CONFIG -= app_bundle “, um diese Funktion zu deaktivieren.
Eine gängige Methode zur Verteilung von Anwendungen ist die Bereitstellung eines komprimierten Festplatten-Images (eine .dmg-Datei), das der Benutzer im Finder einbinden kann. Das Bereitstellungstool „ macdeployqt “ (verfügbar in den macOS-Installationsprogrammen) kann verwendet werden, um eigenständige Bundles zu erstellen und optional auch ein .dmg-Archiv zu erstellen.
Anwendungen können auch über den Mac App Store verteilt werden. „macdeployqt“ (bin/macdeployqt) kann als Ausgangspunkt für die Bereitstellung im App Store verwendet werden. Um sicherzustellen, dass Qt die Sandbox-Regeln des App Stores einhält, muss Qt mit dem Argument „ -feature-appstore-compliant “ konfiguriert werden.
Weitere Informationen zur Bereitstellung unter macOS finden Sie unter „Qt für macOS – Bereitstellung“.
Hinweis: Für den Verkauf von Anwendungen im macOS App Store gelten besondere Regeln. Um die Validierung zu bestehen, muss die Anwendung vor der Ausführung von Code das Vorhandensein eines gültigen Belegs überprüfen. Da es sich hierbei um einen Kopierschutzmechanismus handelt, sollten Maßnahmen ergriffen werden, um gängige Muster zu vermeiden und den Code, der den Beleg validiert, so weit wie möglich zu verschleiern. Daher kann dies nicht durch Qt automatisiert werden, sondern erfordert plattformspezifischen Code, der speziell für die Anwendung selbst geschrieben wird. Weitere Informationen finden Sie in der Dokumentation von Apple.
Verwandte Themen
Die folgenden Themen enthalten weitere Details zu Qt für macOS:
- Qt für macOS – Kompilieren aus dem Quellcode
- Qt für macOS – Bereitstellung
- Qt für macOS – Spezifische Probleme
Verwendung von Objective-C-Code in Qt-Anwendungen
Clang, der für Anwendungen auf Apple-Plattformen verwendete Compiler, ermöglicht die Vermischung von C++- und Objective-C-Code. Um diesen Modus zu aktivieren, verwenden Sie die Erweiterung „ .mm “ für die entsprechenden Quelldateien und fügen Sie diese wie gewohnt zu Ihrem Projekt hinzu.
Mit CMake:
target_sources(myapp PRIVATE objc_code.mm)Mit qmake:
SOURCES += objc_code.mmSie können dann Objective-C-Frameworks aus der Apple Developer Library in Ihren Qt-Anwendungen verwenden.
Um Funktionen für den Rest Ihrer Anwendung verfügbar zu machen, ohne alle Ihre Quelldateien umbenennen zu müssen, deklarieren Sie Hilfsfunktionen in einer Header-Datei und implementieren Sie die Funktionen in einer Objective-C++-Quelldatei:
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.