移植到 iOS
在本节中,我们将把现有的 Qt 应用程序移植到iOS并部署到设备上。
大多数 Qt 应用程序都能轻松移植到 iOS,除非它们依赖于 iOS 不支持的特定硬件或软件功能。移植工作的一个主要部分是确保应用程序的所有资产(如 QML 文件、图像和图标)都能正确部署到设备上。
与大多数 UI 应用程序一样,Qt 应用程序也依赖于图像、图标、翻译文件等资源。必须在设备上提供这些资源,因为它们是应用程序正常运行所必需的。
最方便的方法是将资源捆绑到一个 qrc 文件中,然后将其内置到应用程序的二进制文件中。这种方法大大减少了移植工作,并能更快地访问资源。这也是一种跨平台方法,使移植到其他平台变得更容易。
默认情况下,所有 Qt 应用程序都可以使用":/"前缀或 URL 方案前缀 "qrc: "访问 qrc 文件的内容。要了解有关 qrc 文件及其处理方式的更多信息,请参阅Qt 资源系统。
以下分步说明将指导您使用 qrc 方法将现有Qt Quick 应用程序移植到 iOS:
- 在Qt Creator 中打开现有项目,并使用iOS或iOS Simulatorkit 对其进行配置。有关详细信息,请参阅Qt Creator: 配置项目。
- 更新
qml
文件中的所有本地目录导入,以使用本地命名空间。例如,要导入相对于main.qml
的 "contents "目录中的 QML 文档,请使用以下导入语句:import "contents" as Contents
- Qt Creator 用
RESOURCES
变量更新你的 qmake 项目文件,列出你添加的 qrc 文件。 - 要从 C++ 文件加载或引用 qrc 文件中的资源,请在 URL 中使用 "
qrc:
" 前缀。例如QQuickView viewer; viewer.setSource(QUrl("qrc:qml/main.qml")); viewer.show();
注意: QML 文档只需使用文档的相对路径,就能引用资源中的文件。这种引用不需要 "
qrc:
" 或 ":/
" 前缀。 - 如Qt Creator 所述,更新项目的 "运行 "设置: 配置项目运行
- 如果应用程序使用依赖于特殊 Qt 模块的导入或插件,则应将这些 Qt 模块添加到构建配置文件中。例如,如果您的应用程序使用 QML 中的Qt Multimedia 导入,则应在
.pro
或CMakeLists.txt
文件中添加以下内容:
qmakefind_package(Qt6 REQUIRED COMPONENTS Multimedia) target_link_libraries(my_project PRIVATE Qt6::Multimedia)
QT += multimedia
在 Qt for iOS 中,所有内容都是静态编译并放入应用程序捆绑包中的。应用程序被 "沙盒化 "在捆绑包中,不能使用共享对象文件。因此,Qt 模块使用的插件也需要静态链接。为此,请使用QTPLUGIN变量定义所需的插件。
- 保存项目中的更改并运行应用程序。
Qt Creator 如果在 Xcode 中正确检测到并配置了设备,则 QTPLUGIN 会将应用程序部署到 iOS 设备上。也可以在 iOS 模拟器中测试应用程序。更多信息,请参阅连接 iOS 设备。
另请参阅 平台说明 - 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.