1. 程式人生 > >iOS-iOS9系統SEGV_ACCERR問題處理【v3.6.3的一些bug修復】

iOS-iOS9系統SEGV_ACCERR問題處理【v3.6.3的一些bug修復】

定位 util acc wid sele 替換 前言 更新 over

前言

最近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

iOS-iOS9系統SEGV_ACCERR問題處理【v3.6.3的一些bug修復】