Qt移动端开发需严格适配双生态:Android依赖JDK 17、NDK r25c、SDK Build-Tools 33.0.2三者锁死组合;iOS则强绑定Xcode 15.2,需手动校准mkspecs中QMAKE_XCODE_VERSION值,并确保Apple开发者账号与设备描述文件就绪。

Qt 移动端开发不是“装完 Qt 就能跑”,而是两套完全不同的底层适配:Android 依赖 JDK/SDK/NDK 工具链咬合,iOS 则强绑定 Xcode 版本与 Apple 签名体系。不匹配就卡在 qmake 阶段、Kit 灰色不可选、或构建出错提示 Project ERROR: This mkspec requires Xcode 4.3 or later —— 这类报错根本不是版本低,是 Qt 内置的 mkspecs/macx-ios-clang 校验逻辑和你本地 Xcode 的实际路径/ABI 不一致。
Android 配置必须锁死 JDK/NDK/SDK 版本组合
Qt 6.10 官方明确要求:JDK 17(非 8 或 21)、Android NDK r25c(非 r26+)、Android SDK Build-Tools 33.0.2(非 34+),三者缺一不可。用错任意一个,androiddeployqt 就会静默失败,或者在 Qt Creator → Kits → Android 页面里显示 “No valid Android platform found”。
-
JDK路径不能含空格或中文,比如H:\Program_Files\Java\jdk-17.0.2可以,C:\Program Files\Java\...会触发gradle解析失败 -
NDK必须解压后直接放在Android\Sdk\ndk下,不能重命名文件夹;Qt 6.10 认的是r25c的 ABI 命名规则(如arm64-v8a),r26 改了结构,qmake找不到 toolchain -
SDK中必须手动安装Android 13 (Tiramisu)平台 + 对应的Platform-tools和Build-tools 33.0.2;只装最新版Android 14会导致androiddeployqt报Failed to find platform android-34
iOS 配置本质是 Xcode 工具链对齐,不是 Qt 版本升级
Qt 6.10 for iOS 在 macOS Sonoma + Xcode 15.2 下才能稳定工作。Xcode 15.3 或 15.4 会触发 mkspecs 中硬编码的 QMAKE_XCODE_VERSION 校验失败——这不是 Qt bug,是 Qt 官方预编译包没同步更新校验逻辑。临时解法是手动编辑 $QTDIR/mkspecs/macx-ios-clang/qmake.conf,把 QMAKE_XCODE_VERSION = 15.2 改成 15.4,否则 Kit 一直灰色。
远程控制 Android 设备,支持截图、自动化操作手机 App 等功能。本应用使用 uiautomator2 作为底层框架,通过 ADB 连接设备,用户无需 Root(1)查看手机屏幕;(2)自动化操作手机 App;(3)远程安装/卸载应用……
- 必须用 Apple ID 登录 Xcode,并在
Xcode → Preferences → Accounts里添加开发者账号,否则Qt Creator无法读取 provisioning profile -
Qt安装时必须勾选iOS组件(在线安装器里叫 “iOS clang 64-bit”),离线包若漏掉这个,Qt Creator → Kits根本不会出现 iOS 选项 - 真机调试前,必须在 Xcode 中手动打开
Window → Devices and Simulators,把设备信任并安装描述文件,否则adb类似工具(idevice_id)连不上,Qt Creator 显示 “No device connected”
Qt Creator 中 Kit 设置失败的三个典型信号
Kit 灰色 ≠ 没装好,而是某一层链路断了。重点盯这三处:
-
Qt version下拉为空 → 检查Qt安装路径下是否存在lib/cmake/Qt6/Qt6Config.cmake,没有说明 iOS/Android 组件没装全 -
Compiler显示 “Not set” → Android 是 NDK toolchain 路径未识别,iOS 是 Xcode 的clang++未被qmake自动发现,需手动指定/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -
Debugger显示 “Not available” → Android 不影响构建,但 iOS 必须有 LLDB 支持,检查Xcode Command Line Tools是否已通过xcode-select --install安装
真正卡住人的从来不是“怎么点下一步”,而是 Qt Creator 不报具体错误,只让 Kit 灰着。这时候得打开 Projects → Build & Run → Details 展开日志,看最后一行是不是 Cannot find SDK 或 Failed to parse mkspec —— 这些才是真实线索。版本锁死、路径干净、分层验证(先确认 JDK/NDK/Xcode 能独立运行,再让 Qt Creator 接入),比反复重装快得多。

















