Qt Creator部署iOS应用遇[xcodebuild-release-device] Error 70问题求助
我之前在Qt Creator 4.5上部署iOS真机时,也碰到过和你一模一样的[xcodebuild-release-device] Error 70问题——模拟器跑起来毫无压力,真机就是死活部署失败,而且设备在Qt偏好设置里还显示“就绪可用”。折腾了好几天,终于把问题搞定了,给你整理了一套详细的排查和解决步骤,按顺序来大概率能解决:
第一步:先确认Xcode端的基础配置没问题
Qt的iOS部署本质是调用Xcode的工具链,所以很多问题根源在Xcode那边:
- 打开Xcode,通过
Window > Devices and Simulators检查你的真机状态:必须显示为已准备就绪,没有红色感叹号或警告。如果Xcode都识别异常,Qt肯定也搞不定。 - 验证开发者账号与签名:进入Xcode的
Preferences > Accounts,选中你的Apple ID,点击Manage Certificates,确保存在有效的iOS Development证书且未过期;同时检查Provisioning Profiles,要么Xcode自动生成的描述文件包含你的设备,要么手动导入的描述文件已将该设备添加进去。 - 用Xcode直接部署测试:找到Qt编译生成的
.xcodeproj文件(一般在项目的build-xxx-ios-Release目录下),用Xcode打开后直接选择真机点击运行。如果Xcode报错,会给出比Qt更详细的提示(比如“设备不在描述文件中”“缺少权限声明”),跟着修复即可。
第二步:调整Qt Creator的项目配置
- 打开Qt Creator左侧的「Projects」标签,切换到iOS的Release配置:
- 在
Build Settings的Signing选项中,优先选择Automatic Signing并选中你的开发者账号;如果用手动管理签名,要确保证书和描述文件完全对应。 - 检查
Run Settings:确认Device选中了你的真机,Deployment选项里不要勾选“仅针对特定架构部署”这类可能导致架构不兼容的配置。
- 在
- 清理缓存后重新构建:点击
Build > Clean All,然后手动删除整个build目录,再重新执行Build > Run——旧编译缓存经常会引发莫名其妙的问题。
第三步:直接跑xcodebuild命令看详细错误日志
Error 70只是xcodebuild返回的通用错误码,Qt没有展示具体原因,我们可以手动执行命令排查:
- 打开终端,cd到项目的build目录(比如
cd ~/Projects/YourApp/build-YourApp-ios-Release) - 运行命令:
xcodebuild -scheme YourApp -destination 'platform=iOS,name=你的设备名称' -configuration Release build - 命令会输出完整的错误日志,比如我当时碰到的是Info.plist里没加
NSCameraUsageDescription权限声明,日志里直接指出了问题,加上就解决了。常见的原因还有框架缺失、设备系统版本与Qt不兼容、代码里用了iOS新版本API但部署目标设得太低等。
第四步:检查Qt与Xcode的版本兼容性
Qt Creator 4.5对应的Qt版本一般是Qt 5.10左右,这个版本对Xcode有严格的版本要求(比如不支持Xcode 10及以上)。你可以确认下当前使用的Xcode版本是否在Qt 5.10的支持范围内,如果版本过高,要么降级Xcode到兼容版本,要么升级Qt到更高版本(如果项目允许的话)。
第五步:排查设备连接的小问题
- 重启你的iOS设备和Mac,有时候USB连接的临时故障会导致识别异常;
- 换一根原装或高质量的USB线试试,劣质线材可能会造成连接不稳定;
- 确认设备系统版本在Qt支持范围内:Qt 5.10支持iOS 8.0及以上,如果你的设备是iOS 13+,可能存在部分API不兼容的情况,需要调整代码或升级Qt。
内容的提问来源于stack exchange,提问作者T. Cross




