http://www.lxweimin.com/p/b13e1e441116
截止到2017年9月,iOS9的使用率只有9%,現在iOS11已經發布了一段時間,然而這不到9%的用戶卻給我帶來了新問題?(???‵‵)?
通過各種渠道找到一部系統為iOS9的6sP ,然后開始了測試,連接電腦真機測試,無論怎么操作都沒有崩潰…然后打包上傳蒲公英測試,同樣沒有崩潰。下載模擬器再測試,沒有崩潰。但是在App Store 下載的就是點幾下就閃退,甚至打開就閃退。
接入了友盟的錯誤統計,解析崩潰日志,發現崩潰的地方都是main.m.
沒辦法了,各方查資料,
如果你的圖片資源文件里有16位圖或者圖片顯示模式為P3,并且Deployment Target是iOS9.3以下的就會出現這個問題。(”DisplayGamut” : “P3”, “Encoding” : “ARGB-16″)
是不是圖片的問題呢,然后照下面的方法找到了這樣兩張圖片"DisplayGamut" : "P3"
可能會是吧,也只能排除這種可能試一下了。
進入正題
圖片問題怎么查找解決?
1.首先要將項目打包,得到 .ipa 文件。
2.將得到的.ipa 文件的后綴改為 .zip 。
3.解壓 .zip,得到一個文件夾 Payload,里面包含另一個文件。
Payload
4.打開終端 ,切換到Payload 里面的文件,cd 然后把那個文件拖到終端里 回車。
然后就會看到終端里出現了下面這句話:
cd path/to/Payload/your.app
5.用find 命令 定位Assets.car 文件:終端輸入 find . -name 'Assets.car'
然后應該會看到:
./Assets.car
6.對每個 Assets.car 執行以下命令 : sudo xcrun --sdk iphoneos assetutil --info /path/to/a/Assets.car > /tmp/Assets.json 。
/path/to/a/Assets.car 替換為Assets.car文件的路徑, 如果你終端的位置依然在bundle下則直接執行: xcrun --sdk iphoneos assetutil --info ./Assets.car >/tmp/Assets.json
7.執行完上面的命令后就要打開Assets.json ,執行:open /tmp/Assets.json。
然后就打開了一個新文件,在里面查找 ”DisplayGamut” : “P3”, “Encoding” : “ARGB-16″ 這些關鍵字,如果發現有這些,那么恭喜你,可能找到崩潰原因了。(UI的鍋也只能你來背了,反正早就是背鍋俠了)
修改圖片的方法:
1.讓UI重新切圖給你。(這個方法最簡單,還有可能可以甩鍋)
2.自己修改:
對圖片單擊右鍵,選擇實用工具
修改指派描述文件
這張圖片就修改好了。