Qt for iOS
Qt的iOS端口允许您在iOS设备上运行Qt应用程序,例如iPhone、iPad和iPod Touch。
支持的配置
以下配置受支持。
目标平台 | 架构 | 构建环境 |
---|---|---|
iOS 14, 15, 16, 17 | armv8 (arm64 ) | Xcode 15 (iOS 17 SDK) |
用于自动化测试的目标设备 | |||
---|---|---|---|
设备 | OS版本 | 架构 | 形态 |
iPhone 12 | iOS 16 | armv8 (arm64) | 移动 |
iPhone 11 | iOS 16 | armv8 (arm64) | 移动 |
iPad Pro,第三代 | iOS 15 | armv8 (arm64) | 平板 |
iPad,第六代 | iOS 14 | armv8 (arm64) | 平板 |
入门指南
Qt支持您为iOS构建、测试和部署应用程序。Qt应用程序通常使用CMake或qmake构建工具定义。这两个工具都可以生成.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.在芬兰及/或其他国家和地区的商标。所有其他商标均为其各自所有者的财产。