由於項目合同中規定一部分業務內容要在手機端實現,包括安卓機和蘋果機,所以選擇了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日濟南至洛陽火車上