移植到iOS

在本节中,我们将把现有的Qt应用程序移植到iOS,并将其部署到设备上。

大多数Qt应用程序都可以轻松地移植到iOS,除非它们依赖于iOS不支持的具体硬件或软件功能。移植工作的主要部分包括确保将所有应用程序资源(例如,QML文件、图像和图标)正确部署到设备上。

与大多数UI应用程序一样,Qt应用程序也依赖于诸如图像、图标、翻译文件等资源。这些资源必须在设备上可用,因为它们是应用程序正常工作的必要条件。

最方便的选项是将资源捆绑到qrc文件中,该文件被编译到应用程序二进制文件中。这种方法可以大大减少移植工作量,并提供对资源的快速访问。它也是一种跨平台方法,使移植到其他平台更容易。

默认情况下,所有Qt应用程序都可以使用":“前缀或URL方案前缀"qrc:"来访问qrc文件的内容。有关qrc文件及其处理方式的更多信息,请参阅Qt资源系统

以下分步指导将指导您使用qrc方法将现有的Qt Quick应用程序移植到iOS

  1. 在Qt Creator中打开现有项目,并使用iOSiOS模拟器套件进行配置。有关更多信息,请参阅Qt Creator:配置项目
  2. 将所有的qml文件中的本地目录导入更新为使用本地命名空间。例如,要将位于相对于main.qml的"contents"目录中的QML文档导入,请使用以下导入语句
    import "contents" as Contents
  3. 确定应用程序使用的所有资源,并将它们添加到一个或多个qrc文件中。Qt Creator会更新您的qmake项目文件,使用RESOURCES变量列出您添加的qrc文件。
  4. 要从C++文件中加载或引用qrc文件中的资源,请使用URL的"qrc:"前缀。例如
    QQuickView viewer;
    viewer.setSource(QUrl("qrc:qml/main.qml"));
    viewer.show();

    注意: QML文档可以直接通过使用文档的相对路径来引用资源中的文件。这种引用不需要"qrc:"或":/"前缀。

  5. 按照Qt Creator:指定运行设置中的描述更新项目的"运行"设置
  6. 如果应用程序使用依赖于特殊Qt模块的导入或插件,则应将这些Qt模块添加到您的构建配置文件中。例如,如果应用程序在QML中使用Qt Multimedia导入,您应该在您的.proCMakeLists.txt文件中添加以下内容
    find_package(Qt6 REQUIRED COMPONENTS Multimedia)
    target_link_libraries(my_project PRIVATE Qt6::Multimedia)
    QT += multimedia

    在 Qt for iOS 中,所有内容都是静态编译并放置在应用程序包中。应用程序在其包内“沙箱化”,无法使用共享对象文件。因此,Qt 模块使用的插件也需要静态链接。为此,使用 QTPLUGIN 变量定义所需插件。

  7. 保存项目更改并运行应用程序。

如果 iOS 设备在 Xcode 中检测和配置正确,Qt Creator 将部署您的应用程序到设备上。也可以在 iOS 模拟器中测试应用程序。更多信息,请参阅 连接 iOS 设备

另请参见 平台备注 - iOS

© 2024 Qt 公司有限。此处包含的文档贡献归其各自所有者所有。此处提供的文档是根据 Free Software Foundation 发布的 GNU 自由文档许可协议版本 1.3 的条款授权的。Qt 及其相关标志是芬兰和/或世界各地 Qt 公司的商标。所有其他商标都属于其各自所有者。