最近接手一个QT做的iOS项目,以前没有接触过,需要重新搭建开发环境。经过网上资料收集和各种试错,最后成功搭建出来开发环境,现在将自己的搭建步骤和出现问题的解决方法,梳理整理出来如下,希望能帮到有类似需求的同学。 我的操作环境是:macOS Monterey 12.0.1,Xcode 13.1
安装QT环境
选择最新版本
下载地址
异常情况
网络情况较差时,可能会出现以下加载不出来的情况,需要切换网络多尝试几次
选择旧版本安装
版本下载地址
选择版本
选择对应版本的opensource,这里我选择5.9.9版本
下载完成
下载后对应的文件如下图:
5.9.9的文件名为:qt-opensource-mac-x64-5.9.9.dmg
最新版的文件名为:qt-unified-macOS-x64-4.5.0-online.dmg
安装下载的dmg文件
打开5.9.9.dmg文件
打开5.9.9.app文件
开始步骤安装
登录QT账号
选择安装目录
选择安装的组件
选择许可协议
使用LGPL协议即可
准备安装
正常安装,大概需要24G的存储空间。我这里内存不足,需要清理一下电脑内存
安装完成
Qt Creator
步骤新建一个Qt Quick Application
项目名称
Build System
最小支持的Qt版本
选择多语言
选择应用的运行平台
完成新建步骤
-
新项目的结构
运行Hello World程序
生成Xcode项目
- 在终端进入到项目所在目录:cd /Users/law/Desktop/xqProj/Qt/QTForXcode
- 找到QT的qmake路径,我的目录是:/Users/law/Qt5.9.9/5.9.9/ios/bin/qmake
- 执行指令将qt的项目转换成xcode项目:/Users/law/Qt5.9.9/5.9.9/ios/bin/qmake QTForXcode.pro -spec macx-xcode
生成Xcode项目的异常解决
生成xcode项目时出现错误:
ld: building for iOS, but linking in object file built for iOS Simulator, file '/var/folders/yc/3rs66xd92gn27rkdpj2s6yqr0000gn/T/--d0721e.o' for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
===================
Maybe you forgot to setup the environment?
我的Qt版本是5.9.9,xcode版本为:Version 13.1 (13A1030d),可能是版本兼容问题。
网上找到的方法:
-
解决方法
-
-
toolchain.prf文件60行代码修改,
-
-
修改前:
-
output = $$system("$$cmd_prefix $$QMAKE_CXX $$qtMakeExpand($$cxx_flags) -xc++ - 2>&1 $$cmd_suffix", lines, ec) !equals(ec, 0): qtCompilerErrror($$QMAKE_CXX, $$output)
-
修改后:
-
output = $$system("$$cmd_prefix $$QMAKE_CXX $$qtMakeExpand($$cxx_flags) -xc++ - 2>&1 $$cmd_suffix", lines, ec) !uikit:!equals(ec, 0): qtCompilerErrror($$QMAKE_CXX, $$output)
-
-
-
再次执行生成xcode项目
-
进入到项目所在目录
-
运行指令:/Users/law/Qt5.9.9/5.9.9/ios/bin/qmake QTForXcode.pro -spec macx-xcode
-
-
完成后的文件结构
-
-
打开xcode项目,修改配置
- 修改Bundle Identifier
- 修改证书Profile
选择iOS设备
使用15.0的模拟器编译会出错,应该是一些版本兼容问题,这里不做分析。
我这里使用的是真机,ipad第6代,13.6的系统,可正常编译
运行时出现错误
The Legacy Build System will be removed in a future release. You can configure the selected build system and this deprecation message in File > Project Settings.
我们按照提示来修改工程设置
我们将build System中的Legacy Build System(Deprecated)改成New Build System
运行程序
程序成功运行。如果报错未发现qrc_qml.cpp,需要重新编译运行一下,就可以了