Flutter混合項(xiàng)目在 iOS14啟動(dòng)崩潰處理方法
現(xiàn)象
最近在開(kāi)發(fā)flutter和iOS混合項(xiàng)目時(shí),遇到真機(jī)調(diào)試連接xcode啟動(dòng)項(xiàng)目,在斷開(kāi)后,打開(kāi)App直接崩潰,版本為iOS14+。
APP 測(cè)試結(jié)果如下:
| App來(lái)源 | 是否閃退 | 模式 |
| 線(xiàn)上 | 否 | release |
| fir/蒲公英 | 是 | debug |
| xcode | 是(斷開(kāi)xcode后再打開(kāi)app) | debug |
原因
閃退的原因是因?yàn)?Flutter SDK, Flutter 官方對(duì) iOS14 進(jìn)行了說(shuō)明:Flutter官網(wǎng)說(shuō)明鏈接[1]
大致意思就是說(shuō),如果我們?cè)?iOS14 的真機(jī)上安裝了 debug模式 編譯出來(lái)的 flutter 應(yīng)用,那么在斷開(kāi)編譯安裝連接后,將無(wú)法從桌面上打開(kāi)該應(yīng)用程序。
解決方案
網(wǎng)上嘗試過(guò)幾種方式,有的不靈
? 項(xiàng)目名中文改英文(試過(guò)沒(méi)用)
如Xcode里,選擇當(dāng)前項(xiàng)目的TARGETS->BuildSetting -> Packaging -> Product Name,將中文的命名改成英文,flutter項(xiàng)目建議直接改成Runner。這種方式試過(guò)沒(méi)用。?更改XCode編譯模式
使用Release模式編譯,這個(gè)時(shí)候Flutter編譯方式為AOT,可正常啟動(dòng);?不更改XCode編譯模式
更改Flutter編譯配置,強(qiáng)制設(shè)置為Release。找到Flutter安裝位置,依次打開(kāi)flutter/packages/flutter_tools/bin/xcode_backend.sh這里采用的最后一種方式,不更改XCode編譯模式,試過(guò)可行,不過(guò)這會(huì)改變?cè)瓉?lái)debug的build模式,不過(guò)要記得在需要的時(shí)候改回來(lái)就行。

引用鏈接
[1] Flutter官網(wǎng)說(shuō)明鏈接: https://links.jianshu.com/go?to=https%3A%2F%2Fflutter.dev%2Fdocs%2Fdevelopment%2Fios-14
評(píng)論
圖片
表情
