Portierung auf iOS
In diesem Abschnitt werden wir eine bestehende Qt-Anwendung auf iOS portieren und sie auf dem Gerät bereitstellen.
Die meisten Qt-Anwendungen sollten sich problemlos auf iOS portieren lassen, es sei denn, sie hängen von einer bestimmten Hardware- oder Softwarefunktion ab, die von iOS nicht unterstützt wird. Ein großer Teil des Portierungsaufwands besteht darin sicherzustellen, dass alle Assets der Anwendung (z. B. QML-Dateien, Bilder und Symbole) korrekt auf dem Gerät bereitgestellt werden.
Wie die meisten UI-Anwendungen sind auch Qt-Anwendungen von Ressourcen wie Bildern, Symbolen, Übersetzungsdateien und so weiter abhängig. Diese Ressourcen müssen auf dem Gerät verfügbar gemacht werden, da sie für die korrekte Funktion der Anwendung erforderlich sind.
Die bequemste Möglichkeit ist es, die Ressourcen in einer qrc-Datei zu bündeln, die in die Binärdatei der Anwendung integriert wird. Dieser Ansatz reduziert den Portierungsaufwand erheblich und ermöglicht einen schnelleren Zugriff auf die Ressourcen. Es ist außerdem ein plattformübergreifender Ansatz, der die Portierung auf andere Plattformen erleichtert.
Standardmäßig können alle Qt-Anwendungen auf den Inhalt einer qrc-Datei mit dem Präfix ":/" oder dem URL-Schema-Präfix "qrc:" zugreifen. Um mehr über qrc-Dateien und deren Handhabung zu erfahren, lesen Sie bitte das Qt Resource System.
Die folgende Schritt-für-Schritt-Anleitung führt Sie durch die Portierung einer bestehenden Qt Quick Anwendung auf iOS unter Verwendung des qrc-Ansatzes:
- Öffnen Sie das bestehende Projekt in Qt Creator und konfigurieren Sie es mit iOS oder dem iOS Simulator Kit. Weitere Informationen finden Sie unter Qt Creator: Projekte konfigurieren.
- Aktualisieren Sie alle lokalen Verzeichnisimporte in den
qml
Dateien, um einen lokalen Namespace zu verwenden. Um zum Beispiel die QML-Dokumente im Verzeichnis "contents" relativ zumain.qml
zu importieren, verwenden Sie die folgende Import-Anweisung:import "contents" as Contents
- Identifizieren Sie alle Ressourcen, die von Ihrer Anwendung verwendet werden, und fügen Sie sie zu einer oder mehreren qrc-Dateien hinzu. Qt Creator aktualisiert Ihre qmake-Projektdatei mit der Variable
RESOURCES
und listet die von Ihnen hinzugefügten qrc-Dateien auf. - Um die Ressourcen in der qrc-Datei aus einer C++-Datei zu laden oder auf sie zu verweisen, verwenden Sie das Präfix "
qrc:
" für die URL. Zum Beispiel:QQuickView viewer; viewer.setSource(QUrl("qrc:qml/main.qml")); viewer.show();
Hinweis: QML-Dokumente können auf Dateien in den Ressourcen verweisen, indem sie einfach den relativen Pfad zum Dokument verwenden. Solche Verweise erfordern nicht das Präfix "
qrc:
" oder ":/
". - Aktualisieren Sie die "Run"-Einstellungen für Ihr Projekt wie in Qt Creator beschrieben: Konfigurieren von Projekten für die Ausführung
- Wenn Ihre Anwendung Importe oder Plugins verwendet, die von speziellen Qt-Modulen abhängen, sollten diese Qt-Module zu Ihrer Build-Konfigurationsdatei hinzugefügt werden. Wenn Ihre Anwendung beispielsweise den Qt Multimedia -Import in QML verwendet, sollten Sie Folgendes zu Ihrer
.pro
- oderCMakeLists.txt
-Datei hinzufügen:
find_package(Qt6 REQUIRED COMPONENTS Multimedia) target_link_libraries(my_project PRIVATE Qt6::Multimedia)
QT += multimedia
In Qt für iOS wird alles statisch kompiliert und in das Anwendungsbündel eingefügt. Die Anwendungen sind innerhalb ihrer Bundles "sandboxed" und können keine gemeinsam genutzten Objektdateien verwenden. Aus diesem Grund müssen auch die von den Qt-Modulen verwendeten Plugins statisch gelinkt werden. Um dies zu tun, definieren Sie die benötigten Plugins mit der QTPLUGIN-Variable.
- Speichern Sie die Änderungen an Ihrem Projekt und starten Sie die Anwendung.
Qt Creator stellt Ihre Anwendung auf dem iOS-Gerät bereit, wenn das Gerät in Xcode korrekt erkannt und konfiguriert wurde. Es ist auch möglich, die Anwendung im iOS Simulator zu testen. Weitere Informationen finden Sie unter Verbinden von iOS-Geräten.
Siehe auch Plattformhinweise - iOS.
© 2025 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.