苹果审核返回崩溃日志 iOS .crash文件处理 symbolicatecrash.  困扰我多年的牛皮癣根治了 看到这篇文章拿过来用下

时间:2021-08-19 04:38:01

AppStore审核被拒,返回crashLog.txt文件,可是打开后都是十六进制的地址,我们可以使用Xcode自带的 symbolicatecrash 解析得到我们需要的详细崩溃信息crashLogEnd.crash

1.在桌面创建一个crash文件夹

2.首先找到symbolicatecrash工具存放的地址(Xcode显示包内容亦可找到) 打开终端输入指令:

find /Applications/Xcode.app -name symbolicatecrash -type f

稍等片刻得到地址:/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash

3.用命令将symbolicatecrash拷贝到桌面的crash文件夹里
   cp /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKitBase.framework/Versions/A/Resources    /symbolicatecrash /Users/XXX/Desktop/crash

4.Xcode>Window>Organize在Archives找到上传的App-右击-Show in Finder 右击后显示包内容 复制ProjectName.app和ProjectName.app.dSYM到crash文件夹里

5.校验ProjectName.app、ProjectName.app.dSYM、crashLog.txt 的UUID是否一致

dwarfdump --uuid ProjectName.app/ProjectName

dwarfdump --uuid ProjectName.app.dSYM
  崩溃日志的UUID 在 Binary Images: 下第一行 ProjectName arm64 后

6.终端输入

./symbolicatecrash /Users/XXX/Desktop/crach/crashLog.txt /Users/XXX/Desktop/crach/ProjectName.app.dSYM > crashLogEnd.crash

出现 Error: "DEVELOPER_DIR" is not defined at ./symbolicatecrash line 69. 输入 export DEVELOPER_DIR="/Applications/XCode.app/Contents/Developer"

后再次输入

./symbolicatecrash /Users/XXX/Desktop/crach/crashLog.txt /Users/XXX/Desktop/crach/ProjectName.app.dSYM > crashLogEnd.crash

最后可以根据crashLogEnd.crash详细崩溃信息对程序进行修复

补充:
Exception Type:       异常类型


Exception Codes:     异常出错的代码(常见代码有以下几种)


0x8badf00d错误码:Watchdog超时,  看门狗定时器超时导致       Ate Bad Food

0xbaaaaaad错误码:用户按住Home键和音量键,获取当前内存状态,不代表崩溃。


0xbad22222错误码:VoIP应用被干掉。


0xc00010ff错误码:太热, “cool off”。


0xdead10cc错误码:在后台时仍然占据系统资源(通讯录)被干掉,意为“dead lock”。
     0xdeadfa11错误码:用户强制退出,意为“dead fall”。
Triggered by Thread:     在某一个线程出了问题导致crash,Thread 0  为主线程、其它的都为子线程


Last Exception Backtrace:     最后异常回溯

//千万加看好空格,之前没有加空格,被坑了好惨,看到有空格,试了下果然好使了

./symbolicatecrash空格/Users/XXX/Desktop/crach/crashLog.txt空格/Users/XXX/Desktop/crach/ProjectName.app.dSYM空格>空格crashLogEnd.crash