Crash日志分析
从Crash文件出发解决bug的一般步骤,分三步:
a, 获取设备上的崩溃日志。
b, 分析崩溃日志,找到报错位置(定位到函数和代码行数)。
c, 打开代码,改bug。
1, 获取设备日志
1. 在可以获取到运行app的手机,或者用户配合导出日志的情况下。可以将设备连接到电脑,然后与电脑上的iTunes同步,崩溃日志会同步到电脑上的指定文件夹。(上面博客有指明)
2. 在可以直接获取到运行app的手机的情况下。可以将设备连接到电脑,然后打开xcode软件,选择Window->Devices,然后可以在xcode中查看设备上的所有崩溃日志。
3. 在app已经上线的情况下,可以通过iTunes Connect获取用户的崩溃日志。
2, 解析日志
了解崩溃日志来源之后,提取对应项目崩溃的.crash文件,解析日志需要4样东西:1. 第一步中提取到的.crash文件。2. symbolicatecrash二进制文件。3. dSYM文件。4. app文件
2.1 在命令行输入下面的命令获取symbolicatecrash二进制文件,获取到路径后,copy一份出来
find /Applications/Xcode.app -name symbolicatecrash -type f
2.2 从Xcode Archive的二进制文件中找到.dSYM文件和.app文件copy一份出来
2.3 新建一个文件夹CrashReport,把上面提取到的4个文件放在该文件夹下面,一次运行下列命令
//命令行进入CrashReport目录
cd Desktop/CrashReport/
//配置环境变量
export DEVELOPER_DIR=/Applications/XCode.app/Contents/Developer
//解析.crash文件
./symbolicatecrash ./*.crash ./*.app.dSYM > symbol.crash
2.4 打开symbol.crash,发现和Xcode控制台崩溃日志是一样的了
2.5 改bug
参考资料(戳这里):
> Xcode崩溃日志分析工具symbolicatecrash用法
> 别用symbolicatecrash来解析crash Log了
> 分析iOS Crash文件:符号化iOS Crash文件的3种方法
> iOS Crash - 收集篇 iOS Crash - 解析篇 iOS Crash - 分析篇
> Xcode7.3工具解析App崩溃日志(.crash文件)
> https://www.raywenderlich.com/33669/overview-of-ios-crash-reporting-tools-part-1
> https://www.raywenderlich.com/10209/my-app-crashed-now-what-part-1
> https://www.raywenderlich.com/10505/my-app-crashed-now-what-part-2
Crash日志分析的更多相关文章
- iOS crash日志分析
iOS crash日志分析 一. 寻找crash文件:手机崩溃后的ips或者crash文件(ips文件可以直接修改成crash文件,直接改后缀名就可以了),这里说下如何拿到crash文件 1. 把运行 ...
- iOS symbolicatecrash工具crash日志分析
若一个App没有加入Crashlytics或者Buggly这些崩溃日志监控,那么我们在App崩溃的时候如何获取崩溃信息呢? 此时我们可以通过symbolicatecrash工具对手机日志来进行分析定位 ...
- Android Native crash日志分析
在Android应用crash的类型中,native类型crash应该是比较难的一种了,因为大家接触的少,然后相对也要多转几道工序,所有大部分对这个都比较生疏.虽然相关文章也有很多了,但是我在刚开始学 ...
- ios crash 日志分析
以下内容来自网络 https://coderwall.com/p/ezdcmg/symbolicating-an-ios-crash-log-without-the-original-dsym-fil ...
- 友盟崩溃日志分析工具 - dSYMTools
公司的项目中集成了UM的统计功能,UM统计可以统计app的用户新增,版本分布,日志崩溃等信息,打开错误分析按钮,则可能会看到很多崩溃的日志信息 选择编辑可以选择更多的版本号 点击列表中的一个崩溃日志, ...
- iOS:crash崩溃日志分析
一.前言: 作为一个合格的iOS开发者,除了具有规范强悍的编码能力外,还应该具有过硬的查错纠错能力.在项目运行时,程序崩溃是不可避免的,遇到这个问题,有时会出现一大堆的crash日志,艹,貌似看不懂呀 ...
- iOS应用的crash日志的分析基础
Outline如何获得crash日志如何解析crash日志如何分析crash日志 1. iOS策略相关 2. 常见错误标识 3. 代码bug 一.如何获得crash日志 ...
- iOS--崩溃日志的格式化分析---格式化crash日志
工作中难免或碰到crash,如果是开发环境,碰到简单的crash还能重现下,如果不能重现的话,我们只能去分crash文件了. 首先看下面的crash问题,说句实话一看这个我是拒绝的,这怎么找原因啊,头 ...
- 跑健壮性Monkey,出现一次Crash全过程-日志分析-Dotest董浩
最近带着学生做的某个项目,跑健壮性Monkey,出现一次Crash全过程-日志分析: 准备:搭建adb环境.安装实际测试包:开始: Monkey命令: adb shell monkey -p com. ...
随机推荐
- JSP有哪些动作?
JSP使用动作来动态的插入文件,实现重定向和对JavaBean的引用等功能.它公有6个基本动作:jsp:include,jsp:useBean,jsp:setProperty,jsp:getPrope ...
- struts2的package和result的标签的属性
package的属性 1.name: 配置package元素时必须指定name属性,这是引用该包的唯一标识. 2.extends: 可选属性,指定该包继承的父包,子包可以从一个或多个父包中继承到拦截器 ...
- BerkeleyDB原理及其对应API
BerkeleyDB(简称为BDB)是一种以key-value为结构的嵌入式数据库引擎: 嵌入式:bdb提供了一系列应用程序接口(API),调用这些接口很简单,应用程序和bdb所提供的库一起编译/链接 ...
- 工作随记——弹出QQ联系方式
<a target="_blank" href="http://wpa.qq.com/msgrd?v=1&uin=QQ号码&site=qq& ...
- 部署到IIS上上传不了文件
应用程序池改一下
- 【mysql存储引擎】
看你的mysql现在已提供什么存储引擎: mysql> show engines; 看你的mysql当前默认的存储引擎: mysql> show variables like '%st ...
- linq分页扩展
直接上代码了 public static List<T> ToPagedList<T>(this IEnumerable<T> allItems, int page ...
- [CentOS7] 搭建vncserver,远程通过vncviewer来查看图形界面
Linux上搭建vncserver需下载tigervnc,当然可以从命令下载: 查看一下可以下载哪些: 下载tigervnc-server: 然后可以简单看下 cat /lib/systemd/sys ...
- PHP框架学习思路
希望可以帮助到正在学习的PHPer
- SAS笔记(6) PROC MEANS和PROC FREQ
PROC MEANS和PRC FREQ在做描述性分析的时候很常用,用法也比较简单,不过这两个过程步的某些选项容易忘记,本文就梳理一下. 在进入正文前,我们先创建所需的数据集TEST_SCORES: D ...