Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >iOS开发——解析崩溃日志

iOS开发——解析崩溃日志

作者头像
Originalee
发布于 2018-08-30 02:46:49
发布于 2018-08-30 02:46:49
1.4K0
举报
文章被收录于专栏:编程之旅编程之旅

在实际的开发过程中,作为开发者的我们常常会碰到一种场景,那就是真机调试时崩溃了,而有时又不能在Xcode中打印出崩溃信息,那么这时候我们就必须要获取到崩溃原因,从而解决问题。

而在万能的Xcode中,你可以找到自己测试机里的崩溃日志。Window -> Devices -> 选中自己的测试机 View Device Logs ,类似下图

而此时你可以选择导出自己的崩溃日志,并且这里的我们看到的崩溃日志,都是Xcode已经帮我们符号化的,很清晰的就可以看到崩溃原因,以及崩溃的位置。

如果是其他用户,下载了我们的App之后出现了崩溃,我们可以从iTunes Connect中获取到其他用户的崩溃日志,但是这时如果你去看他人的崩溃日志,不出意外您是懵逼的。这是崩溃日志么? 天书还差不多。而如何把他人的崩溃日志符号化呢? 这就是我们接下来要讲的内容了。

依旧是万能的Xcode给我们提供了一个工具 —— symbolicatecrash,这是一个Xcode自带的分析工具,可以通过机器上的崩溃日志和应用的.dSYM文件定位发生崩溃的位置,把Crash日志中的一堆地址替换成代码相应的位置。

如何使用symbolicatecrash分析崩溃日志

  1. 在你的桌面创建一个新文件夹,并且命名为"CrashReport"
  2. 打开终端输入 find /Applications/Xcode.app -name symbolicatecrash -type f,然后终端会返回这个文件的路径,只要找到symbolicatecrash文件, 复制然后粘贴到刚才创建的 "CrashReport" 文件夹里面.
  3. Xcode Archive的二进制文件中找到.dSYM文件和.app文件拷贝到刚才创建的 CrashReport 文件夹里面.
  4. 打开终端进入CrashReport文件夹,依次输入以下命令行:
  • cd /Users/username/Desktop/CrashReport
  • export DEVELOPER_DIR=/Applications/XCode.app/Contents/Developer
  • ./symbolicatecrash ./*.crash ./*.app.dSYM > symbol.crash

这时候终端将会进行处理...... 处理结果是生成一个新的文件symbol.crash。然后打开这个文件。 你就会看到日志跟我们调试APP的控制台输出的内容一样了!

天书变成了可以看懂的崩溃记录,攻城狮们,赶紧改Bug吧。

不知不觉博客更新了一年了,2017的第一篇日志,希望大家新年无Bug。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017.01.04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
使用symbolicatecrash解析了一个crash log
有一天,测试同学给了我一个未经符号化的崩溃日志。如果是以前,我会找到打这个测试包的同事,让他将奔溃日志符号化后发给我。但是这次,我老板傲娇的拒绝了,而是让我自己来做符号化的工作>.<
且行且珍惜_iOS
2021/09/07
8930
iOS崩溃日志ips文件解析
  测试组的同事在进行稳定性测试时,通常会遇到一些崩溃,然后他们会将这些崩溃日志(一般是ips格式的文件)反馈给开发进行分析,但是这些ips文件中的内容通常是如下图这样的,都是一些十六进制的堆栈地址,如果仅仅根据这些堆栈地址,我们基本无法做任何事情,连最基本的崩溃定位都做不到。那么,在iOS开发中,还有一些其他的方法可以帮助我们将这些堆栈信息转化为可视化的日志文件,在转化后的可视化日志文件中,我们可以清晰定位到我们的应用崩溃的位置,如下图2所示。
mukekeheart
2018/08/20
7.5K0
iOS崩溃日志ips文件解析
iOS 使用Xcode自带工具symbolicatecrash解析Crash文件
每次遇到闪退信息的时候都要敲一遍命令,所以趁现在写个脚本来解析闪退信息,需要的信息有文件有:
傅_hc
2019/12/23
3.6K0
atos命令解析iOS/Mac 崩溃日志
这里简单介绍下怎么通过atos命令来解析iOS/Mac 崩溃日志,适合拿到一份未经符号化的crash日志需要开发人员手动符号化的场景
zqh
2024/01/23
1.7K0
iOS如何获取崩溃日志
在日常测试iOS中会经常遇到App崩溃的情况,然后给研发提bug。如果就提bug就有一两句话描述,研发很难精准排查问题,所以作为测试人员需要提供崩溃日志或者崩溃堆栈辅助研发排查问题。
测试加
2022/12/05
3.3K0
iOS如何获取崩溃日志
iOS_crash文件的获取及符号化(解析)
稍等一会,就会输出路径,然后将路径复制,右键 Finder -> 前往文件夹 -> 粘贴 -> 回车,就能找到symbolicatecrash,将symbolicatecrash拷贝出来备用
mikimo
2023/10/18
2.4K1
深入理解iOS Crash Log
USB连接设备,接着在XCode菜单栏依次选择:Window -> Devices And Simulators,接着选择View Device Logs
用户2932962
2019/07/31
4.4K1
深入理解iOS Crash Log
Xcode 常见 CLI 工具
在咱们日常开发中,或多或少都会用到 Xcode 内置的一些CLI工具,但是大部分小伙伴可能只是会用到一些具体的命令,今天我们就一起来聊一聊 Xcode 内置的常见Command Lines Tool。
CoderStar
2022/09/23
3.5K0
​iOS Class Guard github用法、工作原理和安装详解及使用经验总结
iOS Class Guard是一个用于OC类、协议、属性和方法名混淆的命令行工具。它是class-dump的扩展。这个工具会生成一个symbol table,这个table在编译期间会包含进工程中。iOS-Class-Guard能有效的隐藏绝大多数的类、协议、方法、属性和 实例变量 名。iOS-Class-Guard不是应用安全的最终解决方案,但是它绝对能让攻击者更难读懂你的程序。iOS-Class-Guard会加大代码分析和runtime检查的难度,这个工具可以认为是一个简单基础的混淆方法。由于OC的架构决定了iOS应用程序的剖析相当简单,check out一下链接就知晓了:
iOS Magician
2023/12/02
3370
​iOS Class Guard github用法、工作原理和安装详解及使用经验总结
iOS符号化浅析
十一去云南(丽江、大理、昆明)玩了一趟,怎么说呢,可能我想象中的云南是西双版纳、香格里拉那样子的,所以这次云南之行跟想象中还是有一定差异的。
CoderStar
2022/09/23
2K0
iOS符号化浅析
iOS 友盟崩溃日志定位代码
如果我的介绍没帮到你,可以看看这篇文章: http://www.jianshu.com/p/77d8b5e0d8c3
且行且珍惜_iOS
2018/08/13
2.2K0
iOS 友盟崩溃日志定位代码
有赞crash平台符号化实践
有赞在基础保障平台的实践中完成了 Crash平台 的建设,但是iOS的崩溃日志未经符号化,排查问题比较困难。为了降低iOS App的crash率,快速排查线上crash,疑难crash的跟踪处理,符号化崩溃日志显得尤为重要!
有赞coder
2020/09/21
1.5K0
有赞crash平台符号化实践
XCode日常使用备忘录
0. Introduction        XCode是macOS上开发app不可缺少的开发者工具,不管是开发macOS上的应用,还是iOS上的应用,都离不开XCode环境。尽管其易用性广受诟病,但由于苹果app开发的封闭性,众多开发者也不有苦不能言。近年来微软针对macOS平台发布了Visual Studio Code和Visual Studio for Mac这两款开发工具,但是其目的显然只是作为XCode的一种补充,要全盘替代XCode目前还不太现实。平时工作中由于负责开发维护Windows和Mac
24K纯开源
2018/01/18
1.8K0
XCode日常使用备忘录
iOS 堆栈符号解析最佳实践
本文介绍了如何解析iOS的崩溃堆栈,分别使用了symbolicatecrash来自动解析整个堆栈,以及使用atos来解析单个地址的符号。还介绍了如何确认符号表是否正确,以及找不到符号时如何解决。
QQ空间开发团队
2017/08/16
4.1K2
Bugless 异常监控系统 (iOS端)
移动App 发布后,如果想获取 App 的业务运行状态,通常是通过服务端接口反映到状态或者是用户反馈,缺少客户端的异常错误的线上监控、告警与异常数据聚合并沉淀的平台。也无法在多维度进行异常数据的对比,使得收集应用信息和收集崩溃日志变得日益迫切。
37手游iOS技术运营团队
2021/05/28
2.6K0
Bugless 异常监控系统 (iOS端)
iOS崩溃堆栈符号化,定位问题分分钟搞定!
最近一段时间,在跟开发者沟通过程中,萝莉发觉有些开发者对iOS的应用符号表还不是很清楚,除了咨询关于符号表生成、配置的问题以外,对Bugly崩溃分析需要配置符号表也存在疑问。 在这里,萝莉就给大家分享下关于iOS符号表的一些内容。 首先,进行常识“脑补”。 1. 符号表是什么? 符号表就是指在Xcode项目编译后,在编译生成的二进制文件.app的同级目录下生成的同名的.dSYM文件。 .dSYM文件其实是一个目录,在子目录中包含了一个16进制的保存函数地址映射信息的中转文件,所有Debug的symbols都
腾讯Bugly
2018/03/22
4.9K0
根据友盟统计错误分析查找线上BUG(工具篇)
今天线上的版本出现了BUG,在启动APP的时候出现闪退情况,但是这种BUG在正常测试的时候没有测试到,怎么解决呢
GuangdongQi
2018/09/13
3K0
如何符号化Objective-C调用栈如何符号化Objective-C调用栈
本文讲述的是符号化“残破”的栈,如果你有一个系统生成的crash日志,请交给Xcode自带的symbolicatecrash脚本。
且行且珍惜_iOS
2021/09/07
8410
友盟bug日志分析
1、去友盟后台,我的产品->移动统计->错误分析,找到有哪些bug日志,并把日志下载下来。
用户6094182
2019/08/23
1.3K0
友盟bug日志分析
扒虫篇-崩溃日志解读及Crash收集
崩溃是让发人员比较头痛的事情,app崩溃了,说明代码写的有问题,这时如何快速定位到崩溃的地方很重要。调试阶段是比较容易找到出问题的地方的,但是已经上线的app并分析崩溃报告就比较麻烦了。最终,我们可以通过iOS崩溃日志在大多数情况下,你能从中了解到关于闪退的详尽、有用的信息。线上崩溃可以通过 iTunesConnect 中心的Cash收集,也可以通过第三方Cash收集工具,亦或自己在工程中手动收集崩溃日志上传到服务器中,本文做个小结,希望对初入者能有些帮助。
進无尽
2018/09/12
2.9K0
扒虫篇-崩溃日志解读及Crash收集
相关推荐
使用symbolicatecrash解析了一个crash log
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文