iOS Crash系列(1)-如何获取崩溃报告

527 阅读2分钟

崩溃报告

  • 描述了App如何终止,并记录崩溃时每个线程上运行的代码和完整回溯
  • 发布App之前本地保留符号表,然后通过符号表将十六进制地址转换为应用的符号名称。

Jetsam报告

  • 当OS内存不足,并且需要的内存多于当前可用内存时,操作系统终止App以回收它们的内存。
  • 这时候产生Jetsam报告,不包含App执行线程的堆栈跟踪,包含内存使用情况

设备控制台(console)日志

  • OS和App发生的操作的详细记录, 只保存在内存中。
  • 某些系统层面的问题(例如安装App时出现问题)使用Console查看OS日志来诊断。
  • 可以将App的日志添加到OS的日志中。主要用于调试Extension。

请勿在日志中包含隐私敏感信息。

如何获取崩溃报告

从本地隐私设置中导出

当本机发生崩溃的时候,你可以从系统设置->隐私->分析与改进里面找到你当时的崩溃日志,通常,你的崩溃日志格式包含程序包名,时间以及后缀ips或者beta, 点击进去,右上角点击分享可以各种方式分享出去

获取设备崩溃信息

Windows -> Device And Simulator 获取与 Mac 连接的设备的崩溃信息 image.png

Crashes organizer获取线上崩溃

Windows -> Organizer 使用 Xcode 中的Crashes organizer获取客户报告的App存在问题 image.png

从TestFlight和App Store收集崩溃报告

TestFlight 和 App Store 会收集您提交的每个应用版本的崩溃报告。

如果您在向 App Store 提交内部版本时包含符号信息,则崩溃报告会自动包含可识别的符号信息。

image.png

代码中捕获异常并进行存储上报

可借助三方工具或者自研,常见三方工具包括Bugly、友盟、KSCrash、PLCrashReporter等。