博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS获取用户设备崩溃日志并分析
阅读量:5296 次
发布时间:2019-06-14

本文共 1619 字,大约阅读时间需要 5 分钟。

项目最近发布,部分用户在内侧使用,正好遇到一些问题,由于用户在其他城市,所以对于用户设备产生的崩溃日志,不好直接拿设备连接电脑。

对于已发布的项目,若要收集崩溃日志,我们可借助于第三方工具,如Bugly、友盟等,或者苹果自己提供的一个SDK函数:NSSetUncaughtExceptionHandler 用来做异常处理,然后发送到自己服务器。

那么,如果我们都没有做这两步,该如何处理呢?其实我们可以让用户自己收集给我们。

 

步骤如下:

1、引导用户开启iOS设备设置->隐私->分析

这几个都开启一下,目的是允许系统设备自己记录和上传APP应用的崩溃日志数据。

 

2、点击上图的【分析数据】,会看到一个列表,里面记录了设备上所有应用的日志,找到我们自己的应用,获取到崩溃日志。

关于如何获取崩溃日志:

我摘了两段网上的话

1、当用户抱怨闪退时,你可以要求他让设备与iTunes同步,设备与电脑上的iTunes Store同步后,会将崩溃日志保存在电脑上(路径:Mac OS X:~/Library/Logs/CrashReporter/MobileDevice/)到上述位置把崩溃日志下载下来,然后通过电子邮件发送给你;用这个方法获取崩溃日志时,你必需尽量获取用户设备生成的所有崩溃日志。因为崩溃日志越多,就越容易诊断问题所在

2、应用提交到App Store后,你也能从 iTunes Connect 获取到用户的崩溃日志,登录到 iTunes Connect 上,选择 Manage Your Applications, 点击相应的应用,点击应用图标下面的View Details按钮, 然后点击右栏Links部分的 Crash Reports;如果没有崩溃日志,试试点击Refresh按钮刷新一下。如果你的应用用户量还不多,或者刚上架不久,iTunes Connect账号上也可能还没有任何崩溃日志;如果有的话你就会看到不同iOS版本用户下的崩溃信息。

 

3、当我们得到这个崩溃日志文件后,我们是看不懂的,原因是没有经过符号化

下面我们可以这样做:

a、桌面新建一个文件夹,把刚才的文件放进去

b、一般我们得到的这个文件都是以.ips后缀结尾,我们先修改后缀为.crash

c、打开如下路径,获取symbolicatecrash,并放到a中的文件夹

/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources

 

d、打开Xcode,到Organizer下面,获取你发布商店的Archives版本,show in finder 找到 .dsYM文件,同理放到a中的文件夹

 

 e、现在我们得到如下内容:一共3个文件

 

 f、最后一步,进行符号化解析

打开终端,cd到a的文件夹路径

【./symbolicatecrash】 【.crash文件路径】 【.dSYM文件路径】 【> log.crash】

记得每个之间有个空格,一共4部分组成。最后得到的符号化文件就是 log.crash。

 

比如我的路径是这样:

./symbolicatecrash /Users/MACBOOK/Desktop/符号化/k12_sl_iOS-2017-08-14-163111.crash /Users/MACBOOK/Desktop/符号化/k12_sl_iOS.app.dSYM > log.crash

 

结果如下:

 

打开log.crash ,我们就能看到具体内容了,错误崩溃定位的代码语句都是有的。

提示:这些引起崩溃代码一般都在文件前面部分。

 

至于文件里的内容分布,这里我就不讲解了,大家有兴趣网上搜一下都有的。

 

enjoy~

 

转载于:https://www.cnblogs.com/yajunLi/p/7360092.html

你可能感兴趣的文章
MyBatis学习总结(六)——调用存储过程
查看>>
code-代码平台服务器路径
查看>>
离线安装 Visual Studio Express 而不下载整个镜像文件的方法(转载)
查看>>
2014年国际数学家大会台历
查看>>
[数分提高]2014-2015-2第3教学周第1次课
查看>>
2017-2018-2偏微分方程复习题解析10
查看>>
Java抽象类和接口的比较
查看>>
web技术工具帖
查看>>
SpringBoot项目中常见的注解
查看>>
一次性搞明白 service和factory区别
查看>>
select下拉二级联动
查看>>
iOS UI控件5-UIPickerView
查看>>
深入Java虚拟机读书笔记第三章安全
查看>>
IO流 总结一
查看>>
素数筛选法
查看>>
php连接postgresql数据库
查看>>
Visual studio之C# 调用系统软键盘(外部"osk.exe")
查看>>
hdu 4506(数学,循环节+快速幂)
查看>>
Spring mvc 教程
查看>>
CentOS DesktopEntry
查看>>