由蘋果審核悲劇引發的“血案”


記錄一下今天遇到的問題,就是被蘋果審核團隊給拒了,賊難受!
這是蘋果那邊附在解決方案中心的打給截圖,都是地址看得我一臉懵逼!

大概截了個圖紀念一下:

三部分從上到下主要是:
1.設備信息
這個不多做解釋了,主要是說明App的名字,版本啊,然后還有出現crash時的運行環境等等
2.異常信息 

Exception Type:  EXC_CRASH (SIGKILL)//異常類型
Exception Codes: 0x0000000000000000, 0x0000000000000000//異常的地址
Exception Note:  EXC_CORPSE_NOTIFY//描述
Termination Reason: Namespace SPRINGBOARD, Code 0x8badf00d//原因
Termination Description: SPRINGBOARD, scene-create watchdog transgression: com.hongtukeji.zhangtongcampus exhausted real (wall clock) time allowance of 18.30 seconds | ProcessVisibility: Foreground | ProcessState: Running | WatchdogEvent: scene-create | WatchdogVisibility: Foreground | WatchdogCPUStatistics: ( | "Elapsed total CPU time (seconds): 29.490 (user 29.490, system 0.000), 49% CPU", | "Elapsed application CPU time (seconds): 0.750, 1% CPU" | )
Triggered by Thread:  0//發現異常的線程

以下是某位大神做的一些常見類型的信息

1、Exception Type
1)EXC_BAD_ACCESS

此類型的Excpetion是我們最長碰到的Crash,通常用於訪問了不改訪問的內存導致。一般EXC_BAD_ACCESS后面的"()"還會帶有補充信息。

SIGSEGV: 通常由於重復釋放對象導致,這種類型在切換了ARC以后應該已經很少見到了。

SIGABRT: 收到Abort信號退出,通常Foundation庫中的容器為了保護狀態正常會做一些檢測,例如插入nil到數組中等會遇到此類錯誤。

SEGV:(Segmentation Violation),代表無效內存地址,比如空指針,未初始化指針,棧溢出等;

SIGBUS:總線錯誤,與 SIGSEGV 不同的是,SIGSEGV 訪問的是無效地址,而 SIGBUS 訪問的是有效地址,但總線訪問異常(如地址對齊問題, 它之所以稱為總線錯誤是因為對未對齊的內存訪問時,被阻塞的組件就是地址總線)

SIGILL:嘗試執行非法的指令,可能不被識別或者沒有權限

2)EXC_BAD_INSTRUCTION

此類異常通常由於線程執行非法指令導致

3)EXC_ARITHMETIC

除零錯誤會拋出此類異常

2、Exception Code

0xbaaaaaad 此種類型的log意味着該Crash log並非一個真正的Crash,它僅僅只是包含了整個系統某一時刻的運行狀態。通常可以通過同時按Home鍵和音量鍵,可能由於用戶不小心觸發

0xbad22222當VOIP程序在后台太過頻繁的激活時,系統可能會終止此類程序

0x8badf00d這個前面已經介紹了,程序啟動或者恢復時間過長被watch dog終止

0xc00010ff程序執行大量耗費CPU和GPU的運算,導致設備過熱,觸發系統過熱保護被系統終止

0xdead10cc程序退到后台時還占用系統資源,如通訊錄被系統終止

0xdeadfa11前面也提到過,程序無響應用戶強制關閉

3.crash信息,可以定位發生錯誤的出處,不過這一堆地址,看得頭暈眼花想放棄,所以我還查找了一下解析的方法。
以下介紹一種方法:symbolicatecrash
需要的材料有:

dSYM文件
crash文件(把蘋果發給的保存到本地,后綴是.crash)
symbolicatecrash工具(終端輸入 find /Applications/Xcode.app -name symbolicatecrash -type f獲取列表,然后復制含有DVTFoundation的路徑,然后前往文件夾copy出來)

把這三個東東放在同一個文件夾,然后
打開終端,cd到文件夾,執行

 ./symbolicatecrash ./B89230D7E-52D0-4E77-AE01-7A13SDFB4AD.crash ./MyDemo.app.dSYM > symbol.crash

如果出現
Error: "DEVELOPER_DIR" is not defined at ./symbolicatecrash line 69.

則先執行
export DEVELOPER_DIR=/Applications/XCode.app/Contents/Developer
再執行

 ./symbolicatecrash ./E39F26AE-5B58-48B3-923E-C5D9610C45F7.crash ./MyDemo.app.dSYM > symbol.crash
通過后文件夾就會出現一份symbol.crash文件,里面就是你想要的了

發這個文件僅僅為了記錄一下,如果有什么不對的,請大家指正!

 參考資源:
https://www.cnblogs.com/someonelikeyou/p/6379861.html
http://www.code4app.com/blog-873057-21487.html
https://blog.csdn.net/weixin_33860722/article/details/87255513


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM