1. 問(wèn)題背景
用戶(hù)反饋 iPhone11 iOS14.7 下載安裝 App 后揽乱,點(diǎn)擊圖標(biāo)柔逼,App 閃一下就回到了桌面。
收到問(wèn)題反饋之后信卡,使用手上測(cè)試機(jī)測(cè)試窍侧,iPhone11 iOS15.5 和 iPhone12 iOS15.0 均沒(méi)有復(fù)現(xiàn)問(wèn)題冻璃。
一時(shí)沒(méi)有找到和用戶(hù)相同的版本的測(cè)試手機(jī)腐缤,找到一臺(tái) iPhone11 iOS13.6 的手機(jī)慢蜓。復(fù)現(xiàn)了問(wèn)題搏明。
后面使用 iPhone7 iOS13.6 也復(fù)現(xiàn)了問(wèn)題鼠锈。iPhoneX iOS16.0 沒(méi)有問(wèn)題。
2. 問(wèn)題分析
問(wèn)題分析使用的是 iPhone11 iOS13.6 和 iPhone7 iOS13.6 兩部手機(jī)星著。
App 安裝版本限制是 iOS13 及以上版本购笆。
懷疑一: 是項(xiàng)目中引入的音頻動(dòng)態(tài)庫(kù)版本太老不兼容導(dǎo)致。
檢查之后發(fā)現(xiàn)雖然和最新版本差了2個(gè)小版本虚循,并且文檔中沒(méi)有更新提示相關(guān)兼容性問(wèn)題同欠。并且項(xiàng)目打包上架,經(jīng)過(guò)了 Validate App
横缔。排除懷疑铺遂。
懷疑二: 系統(tǒng) Api 在 iOS15.0 以下版本不兼容 。
如果是系統(tǒng) Api 不兼容茎刚,不管是直接在 App store 下載安裝襟锐,還是直接編譯到手機(jī),都會(huì)有問(wèn)題膛锭。實(shí)際測(cè)試粮坞,直接編譯到手機(jī)沒(méi)有復(fù)現(xiàn)問(wèn)題。
懷疑三: 群友提出可能是因?yàn)?Xcode 版本太老導(dǎo)致的問(wèn)題
我目前的 Xcode 版本是 13.3.1泉沾,最新版本是 13.4.1捞蚂,只差了一個(gè)小版本。
懷疑四: 群友提出可能電腦是 M1 芯片導(dǎo)致
感覺(jué)關(guān)系不大跷究。
3. 問(wèn)題調(diào)試
根據(jù)以上的四個(gè)疑問(wèn)姓迅,逐個(gè)排查。
在調(diào)試之前,已經(jīng)清除掉手機(jī)上已經(jīng)存在的 App丁存,并且卸載清除掉所有緩存肩杈。
1. 聯(lián)機(jī)調(diào)試
手機(jī)連接電腦,直接編譯到手機(jī)中解寝。App 正常使用扩然,沒(méi)有閃退問(wèn)題
2. Crashes
Xcode 中的 Crashes 也沒(méi)有收到任何崩潰信息。
3. TestFlight
通過(guò) TestFlight 的內(nèi)外部測(cè)試聋伦,收集閃退的問(wèn)題夫偶。
4. 升級(jí) Xcode
申請(qǐng)使用備用電腦,進(jìn)行 Xcode 升級(jí)觉增,項(xiàng)目打包上架兵拢。在 Xcode 升級(jí)到 13.4.1 后打包上架的項(xiàng)目,閃退的問(wèn)題消失逾礁。