MacOS中使用QT开发iOS应用
生活随笔
收集整理的這篇文章主要介紹了
MacOS中使用QT开发iOS应用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
因為項目合同中規定一部分業務內容要在手機端實現,包括安卓機和蘋果機,因此選擇了QT作為開發工具。程序在Win10和安卓系統上已經完美運行,這幾天開始搭建iOS的編譯和發布環境,因為以前沒有使用過macOS,不熟悉,這一路下來可是一步一個坑?應了最近的網絡流行語,藍瘦,香菇。好了,步入正題,填坑過程記錄如下開發環境物理機:Windows Server 2012虛擬機:VMware? Workstation 12 Pro?12.5.0 build-4352439MacOS 10.12QT 5.7?Xcode 8.11、王老師已經在Win10下部署好了macOS虛擬機系統,我直接把虛擬機文件拷貝到服務器(Win Server 2012)使用,服務器上還開著微軟的虛擬機Hyper-V,在VMware中創建新的虛擬機的時候會報錯。首先關掉所有的Hyper-V相關服務,然后卸載Hyper-V就可以正常使用VMware了。安裝過程可以參考:http://www.th7.cn/Program/IOS/201407/231980.shtml2、在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.解決辦法:http://blog.csdn.net/l241002209/article/details/52891070?locationNum=2&fps=14、從xCode7開始可以免證書真機調試,無需開發者賬號,配置過程參考下面的文章,在這個過程中,要保證手機一直插在電腦上。http://www.jianshu.com/p/62c5393022ca5、我在虛擬機的macOS系統中始終找不到蘋果手機,參考下面的文章將USB兼容性改為了“USB 2.0”,從而解決了這個問題http://blog.csdn.net/yagerfgcs/article/details/514067416、繼續編譯QT代碼,又提示如下錯誤:Project ERROR:Current iphoneos SDK version(10.1) is too old. Please upgrade Xcode.
按照這片文章(http://blog.csdn.net/willib/article/details/52829317)刪除文件(Qt_install_folder/5.7/ios/mkspecs/macx-ios-clang/features/sdk.prf)的兩行代碼lessThan(QMAKE_MAC_SDK_VERSION,?"8.0"):?\?? error("Current?##QMAKE_MAC_SDK?SDK?version?(##QMAKE_MAC_SDK_VERSION)?is?too?old.?Please?upgrade?Xcode.")? 7、QT代碼生成iOS應用,首先是編譯QT源代碼,生成xCode工程,然后直接運行這個xCode工程,部署到蘋果手機或者虛擬設備就可以了。http://blog.csdn.net/wsj18808050/article/details/422984098、緊接著使用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 6516: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 平臺上不支持。http://qtcn.org/bbs/simple/?t55713.html-------------------------------------------------------------------------------------------------------最后,我下載了最新的 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命令
折騰了三天,總結一下:用QT開發跨平臺應用,若條件允許,最好在macOS環境下開發,可以保證能同時調試安卓和iOS。
于2016年11月7日濟南至洛陽火車上
來自為知筆記(Wiz)
按照這片文章(http://blog.csdn.net/willib/article/details/52829317)刪除文件(Qt_install_folder/5.7/ios/mkspecs/macx-ios-clang/features/sdk.prf)的兩行代碼
=== 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 6516: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 平臺上不支持。http://qtcn.org/bbs/simple/?t55713.html-------------------------------------------------------------------------------------------------------最后,我下載了最新的 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日濟南至洛陽火車上
來自為知筆記(Wiz)
轉載于:https://www.cnblogs.com/sdsunjing/p/6057995.html
總結
以上是生活随笔為你收集整理的MacOS中使用QT开发iOS应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Codeforces Round #36
- 下一篇: 详解JMeter函数和变量