【转】苹果审核被拒,返回崩溃日志,如何解析日志

[转]苹果审核被拒,返回崩溃日志,如何解析日志

[toc]

前两天苹果审核被拒,返回崩溃日志,都是各种符号,看不懂,网上查询了一下,了解到崩溃日志可以用符号表解析,后来解析完之后,找到原因了,接下来记录下来,方便以后使用。

解析日志

1.桌面新建一个文件夹,自行命名(crash);

2.找到Xcode的位置,右键”显示包内容”,根据以下目录找到symbolicatecrash工具:/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash,并拷贝出来,放到刚才创建的(crash)文件夹中;
2412819-69fa73cf9340d0de.

3.把苹果审核返回的崩溃日志下载,也放
到刚才创建的crash文件夹中;

4.打开Xcode,选择Window–>Orgianzer找到对应的Archive文件,
2412819-e53fbfa2047fded8.

右键show in finder找到xcarchive类型文件,右键显示包内容,找到dSYMs文件夹下的对应dYSMs文件,拷贝到刚才的文件夹下;
2412819-a42cba940f40ab5f.

如果文件夹为空,那么就要去检查Xcode设置,在Xcode –> Build Setting 搜索 “debug information format”,将”DWARF”修改为”DWARF with dSYM File”,之后重新打包就可以找到了;
2412819-35a799d705cd047f.

5.打开终端,进入刚才的文件夹(cd 你自己的刚才创建的文件夹路径) cd /Users/xxx/desktop/crash 6.接着输入以下命令1./symbolicatecrash ./crash.txt ./MyAppName.app.dSYM > crash.log 注:crash.txt为苹果返回的崩溃日志的名字,MyAppName.app.dSYM为你自己拷出来的dSYM文件的名字,crash.log为你要输入的日志文件的名字执行命令之前的crash文件夹内(上面三个txt格式的为苹果返回的崩溃日志文件)
2412819-c27eb7fd383c6b11.
6.执行命令之后(.crash文件为生成的日志文件)
2412819-be0a3c93372cba0c.

7.如果提示”DEVELOPER_DIR” is not defined at xxxxxxxxxxxxxx,那么输入以下命令,如果没有则跳过1export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer
8.然后重新输入第6步的命令
1./symbolicatecrash ./crash.txt ./MyAppName.app.dSYM > crash.log
9.最后就是打开日志文件进行分析了

作者:西蜀
链接:https://www.jianshu.com/p/0645af16041d
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

分析问题

定位错误

找到错误部分

1
2
3
4
5
如:appName   0x000000010007528c 0x0000000100004000 + 1444580

取前者 0x000000010007528c

一般错误位置都是在项目名后面的堆栈地址,CoreFoundation、UIKit等后面的堆栈地址无法定位

iOS的看门狗(watchdog)机制

为了防止一个应用占用过多的系统资源,苹果设计了一个“看门狗”(watchdog)的机制。在不同的场景下,“看门狗”会监测应用的性能。
如果超出了该场景所规定的运行时间,“看门狗”就会强制终结这个应用的进程。
开发者们在crashlog里面,会看到诸如0x8badf00d这样的错误代码。
异常代码:“0x8badf00d”,即“ate bad food”

-------------本文结束感谢您的阅读-------------