前言 最近APP不斷地更新版本,卻發現一些未知的錯誤導致崩潰,我把能測出來的錯誤,全部修複了,因為項目里集成了騰訊Bugly,看了下後臺的崩潰,依舊千篇一律啊,然後就糾結了,很多SEGV_ACCERR的錯誤問題,看了下機型統計,98%的崩潰來自於iOS9系統;還有一些適配時iPad出現的錯誤,當然i ...
前言
最近APP不斷地更新版本,卻發現一些未知的錯誤導致崩潰,我把能測出來的錯誤,全部修複了,因為項目里集成了騰訊Bugly,看了下後臺的崩潰,依舊千篇一律啊,然後就糾結了,很多SEGV_ACCERR的錯誤問題,看了下機型統計,98%的崩潰來自於iOS9系統;還有一些適配時iPad出現的錯誤,當然iPad錯誤很明顯;
iOS9 SEGV_ACCERR問題處理
1、打包app並導出ipa。
2、將導出的ipa文件尾碼名改為.zip。
3、解壓該zip文件,解壓後有一個Payload文件夾,該文件夾中是你的app bundle。
4、打開終端,定位到該app bundle。命令如下:cd path/Payload/xxx.app
5、使用find命令查找到Assets.car文件。命令為:find . -name 'Assets.car
6、使用assetutil命令找到任何包含著16-bit或者P3的資源文件。對上一步找出的每個Assets.car執行如下命令:sudo xcrun --sdk iphoneos assetutil --info /path/Assets.car > /tmp/Assets.json
7、第6步裡面有兩個路徑,第一個路徑/path/Assets.car不要照抄,替換為第五步中查找出的路徑。
8、使用open命令打開第六步生成的Assets.json。命令為:open /tmp/Assets.json
9、在第7步打開的文件中查找P3欄位,對應的Name欄位即為該資源的名稱,刪除相應資源,或者修改文件格式即可。
在刪除了含有伽馬值 P3的資源圖片以後,這個問題幾乎沒有了!
iPad適配問題【UIAlertController】
/** 此處為適配iPad */ if ([alertVc respondsToSelector:@selector(popoverPresentationController)]) { alertVc.popoverPresentationController.sourceView = self.view; //必須加 alertVc.popoverPresentationController.sourceRect = CGRectMake(0, Scr_Height, Scr_Width, Scr_Height); }
借鑒:https://www.imooc.com/article/details/id/29452