MacOS中使用QT开发iOS应用

因为项目合同中规定一部分业务内容要在手机端实现,包括安卓机和苹果机,因此选择了QT作为开发工具。程序在Win10和安卓系统上已经完美运行,这几天开始搭建iOS的编译和发布环境,因为以前没有使用过macOS,不熟悉,这一路下来可是一步一个坑?应了最近的网络流行语,蓝瘦,香菇。
好了,步入正题,填坑过程记录如下
开发环境
物理机:Windows Server 2012
虚拟机:VMware® Workstation 12 Pro 12.5.0 build-4352439
MacOS 10.12
QT 5.7 
Xcode 8.1
1、王老师已经在Win10下部署好了macOS虚拟机系统,我直接把虚拟机文件拷贝到服务器(Win Server 2012)使用,服务器上还开着微软的虚拟机Hyper-V,在VMware中创建新的虚拟机的时候会报错。首先关掉所有的 Hyper-V相关 服务,然后卸载 Hyper-V就可以正常使用VMware了
2、在VMware中安装好macOS,从应用商店中安装 xCode ,一开始用的10.9的系统,下载时提示升级系统,于是安装了最新的MacOS10.12,当然也可以从网上下载低版本的xCode。
3、QT5.7从QT官方网站下载安装,安装完毕之后启动QT项目,编译时提示如下错误
error: Xcode not set up properly. You may need to confirm the license agreement by running /usr/bin/xcodebuild.
解决办法:
4、从xCode7开始可以免证书 真机调试,无需开发者账号,配置过程参考下面的文章,在这个过程中,要保证手机一直插在电脑上。
5、我在 虚拟机的macOS系统中始终找不到苹果手机,参考下面的文章将USB兼容性改为了“USB 2.0”,从而解决了这个问题
6、继续编译QT代码,又提示如下错误:
Project ERROR:Current iphoneos SDK version(10.1) is too old. Please upgrade Xcode.
311894-20161116140238670-195312971.jpg
按照这片文章( http://blog.csdn.net/willib/article/details/52829317 )删除文件( Qt_install_folder/5.7/ios/mkspecs/macx-ios-clang/features/sdk.prf )的两行代码
  1. lessThan(QMAKE_MAC_SDK_VERSION, "8.0"): \  
  2. error("Current ##QMAKE_MAC_SDK SDK version (##QMAKE_MAC_SDK_VERSION) is too old. Please upgrade Xcode."
7、 QT代码生成iOS应用,首先是编译QT源代码,生成xCode工程,然后直接运行这个xCode工程,部署到苹果手机或者虚拟设备就可以了。
8、紧接着使用xCode编译时又遇到了下面的问题:
=== BUILD TARGET farmer OF PROJECT farmer WITH CONFIGURATION Debug ===
Check dependencies
Signing for "farmer" requires a development team. Select a development team in the project editor.
Code signing is required for product type 'Application' in SDK 'iOS 10.1'
** BUILD FAILED **
The following build commands failed:
Check dependencies
(1 failure)
make: *** [xcodebuild-debug-iphoneos] Error 65
16:42:06: 进程"/usr/bin/make"退出,退出代码 2 。
Error while building/deploying project farmer (kit: iphoneos-clang Qt 5.7.0 for iOS)
When executing step "Make"
16:42:06: Elapsed time: 00:24.
这是我因为我没有把iPhone6S插到电脑上的缘故。
9、又发现我的源代码在QT中就直接报错了,这时候我已经有砸掉电脑的冲动了。
可能是  Qt Quick 2 有些特性在 iOS 平台上不支持。
-------------------------------------------------------------------------------------------------------
最后,我下载了最新的 Qt5.8 beta 版,前面的很多问题就没有了,包括前面需修改Qt的一些配置文件也不需要做了。
-------------------------------------------------------------------------------------------------------
10、如果项目中使用了 gSoap 来调用Webservice,在macOS系统中.pro文件不需要下面这段代码:
 
  
11、还有一点要注意,我一开始只给虚拟机分配了15G的空间,然后增加到了30G,还不够,然后又增加到50G,最后增加到了70G。这里提醒 至少预留50G以上的空间。

附  扩展空间的方法( http://www.cnblogs.com/atree/p/MacOSX_diskutil_xcode.html ):
1、首先在VMware中扩展;
2、然后进入虚拟机的macOS操作系统使用diskutil命令

(1).打开终端,输入diskutil list

(2).从显示的列表中找到你需要扩展的分区,如上图。我的磁盘有107.4G,但系统分区为42.1GB。(分区的ID一般为diskXsX,我的ID是disk0s2);

(3).然后输入 diskutil resizeVolume disk0s2 100GB,其中disk0s2为对应分区的ID,100GB为目标大小(这里的目标大小不能超过这个磁盘的总额);回车,等待完成就可以使用了。


折腾了三天,总结一下:用QT开发跨平台应用,若条件允许,最好在macOS环境下开发,可以保证能同时调试安卓和iOS。

于2016年11月7日济南至洛阳火车上








转载于:https://www.cnblogs.com/sdsunjing/p/6057995.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值