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. ...
随机推荐
- hive 连接查询sql对比效率
准备4个表 从mysql 导出excel 转换为txt 创建hive 表的导入文件 create table bdqn_student( sno int, sname string, sbirthda ...
- 09_android项目的目录结构
R.java是由IDE自动生成的,不允许修改. Android Dependences 安卓的支持库 项目创建之后一般都会把安卓支持库的V4包导入进来. 项目打包的时候assets的内容并不会被编译 ...
- [poj3281]Dining(最大流+拆点)
题目大意:有$n$头牛,$f$种食物和$d$种饮料,每种食物或饮料只能供一头牛享用,且每头牛只享用一种食物和一种饮料.每头牛都有自己喜欢的食物种类列表和饮料种类列表,问最多能使几头牛同时享用到自己喜欢 ...
- PLSQL Developer 直接用ip访问指定数据库
- 谈谈asp.net中的<% %>,<%= %>,<%# %><%$ %>的使用-转
首先我们来看一下<% %>的使用 在aspx的页面中只能使用服务器控件和一般的控件,有些时候你想在该页面写入c#代码,必须使用<% %>,然后在里面写入c#的代码,下面我们来看 ...
- Note: Clay Codes: Moulding MDS Codes to Yield an MSR Code
Background Erasure Code 纠删码:与纠错码.检错码类似,均为线性分组码,通过编码可以在有限损失的前提下恢复丢失的数据.  假设每个磁盘存储w比特数据,设\(d_0,\cdots ...
- 读《JavaScript权威指南》笔记(一)
1.Number() parseInt() parseFloat() 如果通过Number()转换函数传入一个字符串,它会试图将其转换为一个整数或浮点数直接量,这个方法只能基于十进制数进行转换,并 ...
- Spring是一个分层的Java
Spring简介 Spring是一个分层的Java SE/EE应用一站式的轻量级开源框架.Spring核心是IOC和AOP. Spring优点 -方便解耦,简化开发,通过Spring提供的IoC容器, ...
- Shape Number (最小表示法)
题目链接 一个字符串,这个字符串的首尾是连在一起的,要求寻找一个位置,以该位置为起点的字符串的字典序在所有的字符串中中最小. #include <bits/stdc++.h> using ...
- Exadata中的dbserver_backup.sh脚本
dbserver_backup.sh脚本在老版本的exadata中,它存放在/opt/oracle.SupportTools目录中,主要用于/根文件系统和/boot分区的备份.dbserver_bac ...