Qt for iOS

Qt的iOS端口允许您在iOS设备上运行Qt应用程序,例如iPhone、iPad和iPod Touch。

支持的配置

以下配置受支持。

目标平台架构构建环境
iOS 14, 15, 16, 17armv8 (arm64)Xcode 15 (iOS 17 SDK)
用于自动化测试的目标设备
设备OS版本架构形态
iPhone 12iOS 16armv8 (arm64)移动
iPhone 11iOS 16armv8 (arm64)移动
iPad Pro,第三代iOS 15armv8 (arm64)平板
iPad,第六代iOS 14armv8 (arm64)平板

入门指南

Qt支持您为iOS构建、测试和部署应用程序。Qt应用程序通常使用CMakeqmake构建工具定义。这两个工具都可以生成.xcodeproj文件,然后可以从命令行或使用Xcode加载和构建。Qt Creator也直接支持为iOS构建、运行、调试和分析CMake和qmake项目。

Qt应用程序的最小部署目标在支持的平台中指定。

设置开发环境

您可以从下载页面下载Qt安装程序。有关更多信息,请参阅Qt入门指南

安装Qt之前,您首先需要安装Xcode。您可以在Mac App Store此处找到它。

注意:根据Apple的建议,在为App Store中的应用程序构建时,您应始终使用最新的Xcode版本。实际上,这意味着由于Xcode的系统要求,您还需要最新的macOS版本来使用Qt开发应用程序。

对于在Mac或Xcode附带的模拟器上运行Qt应用程序,这就是您需要的一切。但是,为了在移动设备上运行应用程序和在App Store中发布应用程序,您必须加入Apple开发者计划,并设置开发者证书和配置文件。最简单的解决方案是使用接受任何App ID的配置文件(*)。

在构建任何Qt应用程序之前,您应该测试Xcode是否设置正确,例如,可以通过在设备上运行标准Xcode应用程序模板来做到这一点。

从命令行构建应用程序

使用CMake或qmake定义如何构建您的iOS应用程序。CMake和qmake都可以生成xcodeproj文件,然后可以从命令行或使用Xcode加载和构建。

使用CMake

位于 <Qt-dir>/<version>/ios/bin/ 的便捷脚本来自 qt-cmake 会为您设置工具链和正确的架构。

使用 qt-cmake 便捷脚本

<Qt-dir>/<version>/ios/bin/qt-cmake <source-dir>

使用生成的 xcodeproj 文件,您可以使用 Xcode 构建应用程序,或从命令行运行 xcodebuild。要查看应用程序可用的目标和方案,请执行以下命令

xcodebuild -list -project <your-app>.xcodeproj

然后,运行 xcodebuild build,传入您的应用程序细节

xcodebuild build -allowProvisioningUpdates -project <your-app>.xcodeproj -scheme <your-scheme> -configuration Debug -destination "generic/platform=iOS" -destination-timeout 1 ENABLE_ONLY_ACTIVE_RESOURCES=NO

使用 qmake

首先,使用 qmake 定义构建应用程序的方法。然后,使用生成的 xcodeproj 文件,通过 Xcode 或从命令行构建应用程序。

qmake <your-app>.pro

qmake 创建了一个包装 Makefile,该 Makefile 则调用 xcodebuild,因此您可以运行 make 来构建应用程序

make -j8

请注意,如果项目的设置更改,例如添加或删除源文件时,必须重新导入项目。

自定义 Xcode 项目的设置

可以使用 QMAKE_MAC_XCODE_SETTINGS qmake 变量来自定义 Xcode 设置,例如

development_team.name = DEVELOPMENT_TEAM
development_team.value = <your-team-id>
QMAKE_MAC_XCODE_SETTINGS += development_team

其他 qmake 变量也非常有用

QMAKE_TARGET_BUNDLE_PREFIX = com.<your-company>
QMAKE_BUNDLE = <your-app>

使用 Qt Creator 构建应用程序

有关在 Qt Creator 中设置和运行 Apple 移动设备应用程序的更多信息,请参阅 Qt Creator 的手册

如前所述,您必须安装 Xcode。

在 Xcode 中运行应用程序

使用 qmake 和 CMake 生成 Xcode 项目,支持在 iOS 设备和 iOS 模拟器上运行应用程序。

注意:由于为 iOS 模拟器库设置默认架构为 x86_64,因此在 Apple Silicon Mac 上必须在 Rosetta 下运行应用程序。如果基于 Rosetta 的运行目标未列在 Xcode 的运行目标菜单中,它们可以通过 Product > Destination > Destination Architectures 菜单启用。

在 Qt 应用程序中使用 Objective-C 代码

用于 Apple 平台应用程序的编译器 Clang 允许混合 C++ 和 Objective-C 代码。要启用此模式,请为相关源文件使用 .mm 扩展名,并将它们添加到您的项目中。

使用 CMake

target_sources(myapp PRIVATE objc_code.mm)

使用 qmake

SOURCES += objc_code.mm

您可以在 Qt 应用程序中使用 Apple 开发者库中的 Objective-C 框架。

要使功能对其他应用程序部分可用,而无需重命名所有源文件,请在头文件中声明辅助函数,并在 Objective-C++ 源文件中实现该功能。

// objc_code.h
QString localizedHostName();

// objc_code.mm
#include <Foundation/NSHost.h>
QString localizedHostName()
{
    return QString::fromNSString(NSHost.currentHost.localizedName);
}

适用于 iOS 的示例

在 Qt Creator 中,可以查找测试过的 iOS 示例。使用 ios 关键字在 Qt Creator 欢迎模式下查找示例。请注意,某些示例可能具有有限的功能。

有关在 iOS 设备上已知工作的一些示例的列表,请访问 Qt for iOS 示例

以下主题提供了有关 Qt for iOS 的更多详细信息

© 2024 The Qt Company Ltd. 文档中的贡献版权属于其各自所有者。本提供的文档是根据自由软件基金会发布的GNU自由文档许可协议版本1.3进行许可。Qt及其相关标识是The Qt Company Ltd.在芬兰及/或其他国家和地区的商标。所有其他商标均为其各自所有者的财产。