由于项目合同中规定一部分业务内容要在手机端实现,包括安卓机和苹果机,所以选择了QT做为开发工具。程序在Win10和安卓系统上已经完美运行,这几天开始搭建iOS的编译和发布环境,由于之前没有使用过macOS,不熟悉,这一路下来但是一步一个坑😭应了最近的网络流行语,蓝瘦,香菇。
一、王老师已经在Win10下部署好了macOS虚拟机系统,我直接把虚拟机文件拷贝到服务器(Win Server 2012)使用,服务器上还开着微软的虚拟机Hyper-V,在VMware中建立新的虚拟机的时候会报错。首先关掉全部的
Hyper-V相关
服务,而后卸载
Hyper-V就能够正常使用VMware了
。
error: Xcode not set up properly. You may need to confirm the license agreement by running /usr/bin/xcodebuild.
解决办法:
四、从xCode7开始能够免证书
真机调试,无需开发者帐号,配置过程参考下面的文章,在这个过程当中,要保证手机一直插在电脑上。
五、我在
虚拟机的macOS系统中始终找不到苹果手机,参考下面的文章将USB兼容性改成了“USB 2.0”,从而解决了这个问题
六、继续编译QT代码,又提示以下错误:
Project ERROR:Current iphoneos SDK version(10.1) is too old. Please upgrade Xcode.
- lessThan(QMAKE_MAC_SDK_VERSION, "8.0"): \
- error("Current ##QMAKE_MAC_SDK SDK version (##QMAKE_MAC_SDK_VERSION) is too old. Please upgrade Xcode.")
七、
QT代码生成iOS应用,首先是编译QT源代码,生成xCode工程,而后直接运行这个xCode工程,部署到苹果手机或者虚拟设备就能够了。
八、紧接着使用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插到电脑上的缘故。
九、又发现个人源代码在QT中就直接报错了,这时候我已经有砸掉电脑的冲动了。
多是
Qt Quick 2 有些特性在 iOS 平台上不支持。
-------------------------------------------------------------------------------------------------------
最后,我下载了最新的 Qt5.8 beta 版,前面的不少问题就没有了,包括前面需修改Qt的一些配置文件也不须要作了。
-------------------------------------------------------------------------------------------------------
十、若是项目中使用了 gSoap 来调用Webservice,在macOS系统中.pro文件不须要下面这段代码:
LIBS += D:/Qt/Qt5.7.0/Tools/mingw530_32/i686-w64-mingw32/lib/libws2_32.a
十一、还有一点要注意,我一开始只给虚拟机分配了15G的空间,而后增长到了30G,还不够,而后又增长到50G,最后增长到了70G。这里提醒
至少预留50G以上的空间。
一、首先在VMware中扩展;
二、而后进入虚拟机的macOS操做系统使用diskutil命令
(1).打开终端,输入diskutil listhtml

(2).从显示的列表中找到你须要扩展的分区,如上图。个人磁盘有107.4G,但系统分区为42.1GB。(分区的ID通常为diskXsX,个人ID是disk0s2);ios
(3).而后输入 diskutil resizeVolume disk0s2 100GB,其中disk0s2为对应分区的ID,100GB为目标大小(这里的目标大小不能超过这个磁盘的总额);回车,等待完成就可使用了。xcode
折腾了三天,总结一下:用QT开发跨平台应用,若条件容许,最好在macOS环境下开发,能够保证能同时调试安卓和iOS。
于2016年11月7日济南至洛阳火车上