Qt for IOS的坑總結(jié)與解決方案
以下錯(cuò)誤都是本人親自采坑而來,出現(xiàn)率99%,在網(wǎng)上找到的解決方案很微妙,所以總結(jié)于此:
1、在使用AFNetworking第三方庫(kù)時(shí),導(dǎo)致編譯不過報(bào)錯(cuò):error: cannot synthesize weak property in file using manual reference counting
解決方案:這就是引入arc代碼在項(xiàng)目中的沖突,有一種解決辦法就是把資源代碼中的weak修飾符改為assign,
但是這種方法畢竟是把別人寫的代碼給改了,有的時(shí)候往往會(huì)出現(xiàn)閃退、崩潰的問題。
比較好的解決辦法就是項(xiàng)目配置文件->Build Phrases->Complie Sources,找到出現(xiàn)問題的資源庫(kù)文件(比如weak修飾符所在的文件)
,雙擊Complie Files中的該文件,在空白行中寫入-fobjc-arc,這樣就可以有效防止該沖突。反過來有的時(shí)候,在arc代碼中引入手動(dòng)
管理內(nèi)存的代碼,我們?cè)贑omplie Files中為新增的資源文件增加-fno-objc-arc,這樣就避免了手動(dòng)管理內(nèi)存的代碼在arc代碼中的沖突。
2、編譯報(bào)錯(cuò)Cannot create __weak reference in file using manual reference counting
解決方案:(根據(jù)Xcode自身版本對(duì)號(hào)入座,我使用的是xcode8.3)
build setting -> Apple LLVM8.3 - Language - Objective C -> Weak References in Manual Retain Release 設(shè)置為 YES
3、為防止文件未被xcode編譯
?
在qt Creator工程Pro文件中.m文件除了在DISTFILES關(guān)鍵字后面追加,還要手動(dòng)復(fù)制一份到OBJECTIVE_SOURCES關(guān)鍵字后面,
只在DISTFILES關(guān)鍵字后面追加文件,qt creator可以顯示.m文件,但是xcode是不會(huì)編譯進(jìn)去的,只能最后手動(dòng)再添加一遍,否則會(huì)編譯報(bào)錯(cuò)。
4、建議
?
無論文件是否為qt文件還是ios文件,最好都要在xcode上面編譯,以xcode軟件報(bào)錯(cuò)為主,其次再回到qt creator編譯,以qt creator報(bào)錯(cuò)為輔,
xcode編譯過了才是真的編譯過了!
5、將iosApp編譯進(jìn)真機(jī)后提示如下:
Could not launch “weClassApp”Verify the Developer App certificate for your account is trusted on your device.
Open Settings on XXX的 iPhone and navigate to General -> Device Management, then select your Developer
App certificate to trust it.
?
解決方法:手機(jī)(真機(jī))中點(diǎn)擊設(shè)置(Settings) -》 通用(General)-》設(shè)備管理(Device Management)-》點(diǎn)擊對(duì)應(yīng)的id -》信任(Trust)
6、錯(cuò)誤:App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file
?
解決方法:
io9的時(shí)候因?yàn)閺?qiáng)制使用了https協(xié)議,所以需要在info文件中添加如下字段:
或者直接編輯Info.plist,在最后 tag 前添加: