這兩天上傳審核遇到點麻煩,打開app加載超時被看門狗kill了仲器,此文記錄自己采坑并解決重新審核通過的經(jīng)歷,以下是蘋果反饋的問題:
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: application<com.fms.weigongcheng>:7344 exhausted real (wall clock) time allowance of 19.40 seconds | ProcessVisibility: Foreground | ProcessState: Running | WatchdogEvent: scene-create | WatchdogVisibility: Foreground | WatchdogCPUStatistics: ( | "Elapsed total CPU time (seconds): 15.850 (user 15.850, system 0.000), 13% CPU", | "Elapsed application CPU time (seconds): 0.297, 0% CPU" | )
Triggered by Thread: 0
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libsystem_kernel.dylib 0x00000001a73857e4 0x1a735e000 + 161764
1 libsystem_platform.dylib 0x00000001a729f008 0x1a729b000 + 16392
2 CoreFoundation 0x00000001a7472674 0x1a746c000 + 26228
3 CoreFoundation 0x00000001a75d4d0c 0x1a746c000 + 1477900
4 CoreFoundation 0x00000001a7504128 0x1a746c000 + 622888
5 CoreFoundation 0x00000001a7503970 0x1a746c000 + 620912
6 CoreFoundation 0x00000001a747058c 0x1a746c000 + 17804
7 CoreFoundation 0x00000001a7470ea8 0x1a746c000 + 20136
8 CoreFoundation 0x00000001a75d763c 0x1a746c000 + 1488444
9 Foundation 0x00000001a785c628 0x1a7855000 + 30248
10 ZJB-New 0x00000001010de9e4 0x100bd0000 + 5302756
11 ZJB-New 0x00000001010c21d4 0x100bd0000 + 5186004
問題提示就是啟動后主線程加載時間過長蒿秦,被看門口給殺了《好現(xiàn)在我們要找到啟動后是什么問題導(dǎo)致加載過長乍构,但面對這些地址符號如何解析呢?
下面介紹一種方法:symbolicatecrash
該方法要用到三個文件
1: dSYM文件----該文件你可以在Xcode->window->organizer里面找到你上次上傳到App Store的包然后右鍵 show In Finder柳譬,然后找到該文件再右鍵顯示包內(nèi)容->找到dSYMs文件夾->找到XXX.app.dSYM文件喳张。
2.crash文件(把蘋果發(fā)給你的.txt文件,保存到本地美澳,后綴是.crash)
3.symbolicatecrash工具(終端輸入 find /Applications/Xcode.app -name symbolicatecrash -type f獲取列表销部,然后復(fù)制含有DVTFoundation的路徑摸航,然后前往文件夾copy出來)把這三個東東放在同一個文件夾
然后
打開終端,cd到文件夾舅桩,執(zhí)行
./symbolicatecrash ./5CFEEB3F-8FA3-4522-B0E2-303B0200799A.crash ./xxx.app.dSYM > symbol.crash
如果出現(xiàn)
Error: "DEVELOPER_DIR" is not defined at ./symbolicatecrash line 69.
則先執(zhí)行
export DEVELOPER_DIR=/Applications/XCode.app/Contents/Developer
再執(zhí)行
./symbolicatecrash ./5CFEEB3F-8FA3-4522-B0E2-303B0200799A.crash ./xxx.app.dSYM > symbol.crash
通過后文件夾就會出現(xiàn)一份symbol.crash文件酱虎,里面就是你想要的了crash.png
打開symbol.crash文件
crash2.png
發(fā)現(xiàn)是友盟的當前sdk版本在初始化參數(shù)時阻塞了主線程(或許是偶發(fā)的情況,因為平時在測試沒有發(fā)現(xiàn))擂涛,隨后果斷更新到最新的SDK读串。
最后,優(yōu)化App的啟動時間也有很多文章也提供了很多方式撒妈,這些都需要平時多多注意恢暖。