移动分析模块提供了崩溃日志上传功能,帮着开发者及时监控和捕获客户端产生的各种崩溃问题。对于 Android 应用,崩溃日志在上传时已经自动对崩溃点的调用栈进行了符号化,可以直接定位到崩溃的代码。而 iOS 平台则需要在控制台上传符号表。
符号表是内存地址与代码中的函数名、行号之间的映射关系表。
iOS App 上传的崩溃日志中包括的调用栈信息都是通过内存地址记录的,开发者无法直观的看到崩溃发生时对应的代码调用栈信息。为了能便捷地定位 Crash 发生的代码位置,mPaaS 服务端需要使用符号表对 iOS Crash 日志的程序堆栈进行解析和还原。例如:
解析前:
18 NebulaTest 0x00000001030f6b7c 0x104ad4000 + 9282380
19 NebulaTest 0x00000001030f6ed4 0x104ad4000 + 9283236
20 NebulaTest 0x00000001030f6d0c 0x104ad4000 + 9282780
21 NebulaTest 0x00000001030f6ed4 0x104ad4000 + 9283236
22 NebulaTest 0x00000001030f6d0c 0x104ad4000 + 9282780
解析后:
18 NebulaTest 0x00000001030f6b7c -[DTJsonEncoder encodeObject:ofClass:recusive:] + 424
19 NebulaTest 0x00000001030f6ed4 -[DTJsonEncoder encodeObject:] + 280
20 NebulaTest 0x00000001030f6d0c -[DTJsonEncoder encodeObject:ofClass:recusive:] + 824
21 NebulaTest 0x00000001030f6ed4 -[DTJsonEncoder encodeObject:] + 280
22 NebulaTest 0x00000001030f6d0c -[DTJsonEncoder encodeObject:ofClass:recusive:] + 824
XCode 在 Release 编译模式下默认会生成 dSYM 文件。
在 Debug 编译模式下需要额外配置:
Build Settings
> Code Generation
> Generate Debug Symbols
> Yes
Build Settings
> Build Option
> Debug Information Format
> DWARF with dSYM File
编译成功后,打开 App 所在对文件夹:
此时应该可以看到在产生在同一目录下的 dSYM 符号表文件:
在苹果商店发布应用后,开发者需要在 mPaaS 控制台上正确添加对应版本号的发布任务。
添加完发布任务后,上传对应的符号表文件:
如果一切配置正常,此后该版本产生的崩溃日志,在 mPaaS 控制台均能看到解析后的崩溃日志。
在文档使用中是否遇到以下问题
更多建议
匿名提交