記錄一下今天遇到的問題,就是被蘋果審核團隊給拒了,賊難受!
這是蘋果那邊附在解決方案中心的打給截圖,都是地址看得我一臉懵逼!
大概截了個圖紀念一下:
三部分從上到下主要是:
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