iOS开发之Crash分析,以及收集

一  先谈谈iOS的Crash收集方式:

1. APP 发生crash,用户手机手机上肯定会有crash纪录,当然删除了该app,或是删了再装 crash纪录还是没了。

2. 如果用户设置-隐私  同意的话,你的crash日志会发送到App store,你可以去账号上去查看crash日志 。(PS:但是,这个要用户自己同意,大部分人选的是不同意,我也选的不同意。可能你的账号上根本没有任何crash纪录,这不代表你的app 没有crash过。)

3.第三方日志统计平台,国外的比如Crashlytics,Hockeyapp,国内的也有 友盟,Bugly 等等。

4.当然也可以自己收集,开源项目很多,如 KSCrash,plcrashreporter,CrashKit 等。(PS:小公司的话,用用第三方的省心点。但是对安全性高的,并且有人力有时间情况下,还是自己实现收集吧,阿里 京东 这些公司肯定不会用 3.xxx  ,都是有自己的收集服务。腾讯肯定用自家的Bugly )

现在聊聊选用方式:

1.大公司的话,老老实实 自己 实现收集。

2.中小公司的话如果是金融类或是涉及个人资料比较多的,并且用户量特别巨大的,建议 也是老老实实自己收集。

3.如果你说我是金融类的,目前/以后 用户不一定多,自己也没时间 人力搞,那你就用国外的第三方。(PS:个人见解是,你的那点数据对于国外的平台,人家不是很care,相对安全点。但是,用国内的第三方的话,不是说国内做的不好,而是更容易暴露 你的app 什么什么问题。)

4.中小公司涉及用户安全不是很多的app,以及游戏,可以考虑使用第三方 ,  友盟 或是 Bugly 。

二  选择友盟好还是Bugly好?

1.友盟很早就出了,数据统计,推送,crash统计,分享,IM 等 服务很多,也很全。小公司也用的多。(我之前有2个项目都用了友盟 )

2.Bugly ,看着骚气的名字还以为是国外的第三方,其实是大企鹅出的,我记得刚出来时间不是很长,但是 腾讯出品,必属精品 !腾讯产品,值得信耐! 打2句骚气的广告,因为最近要去腾讯面试,先奶一口。(ps:有一个项目用了Bugly!腾讯的信鸽推送我感觉比  极光 这些好多了。当年有对几个平台测试分析,遗憾的是 没有纪录下来!)

我个人推荐使用Bugly,腾讯自己的产品也都在用,Bugly定期也有分享文章,都是干货,大家可以去搜搜。

三  谈谈我之前处理一个crash 的经验,仅做参考

去年某天,人事跟我讲他在 app store 下载的 我们自己的app crash了。我当时就想,老子写的app 竟然会crash?竟然会crash?

1. 我然后问了,哪个界面什么操作导致的?可以复现吗? 得到的结果是,在就诊人列表,然后在点击 添加 就诊人按钮的时候 GG的。另外,不是必现的。

2. 我首先跑去 appstore 看下日志统计,对 一个 纪录都没。(这就是要自己实现或是借助第三方的原因。)

3. 让测试 用不同机型 跟测。(测试复现率,然而n轮没有再次crash,为什么让测试继续测,主要是统计下复现率,另外测试的时候多点击下其他界面,有可能是其他页面有内存泄漏,刚好在这个界面时候出了问题,估测下受潜在影响的用户)

4. 我拿了那crash 的机子 ,导出了crash日志到 xcode ,点开日志 并没有直观的显示哪个地方crash。

5. 我看了下版本,crash 的 是  上个 小版本,目前线上的 这一块 都有 重写过,(git还原到上个版本)检测下代码也没啥问题。

然后只能通过crash和 .app 分析:

1. 建议 桌面 建 个文件夹  appxx  ,然后 将那个闪退 对应的 包  xxx.app 放入  appxx文件夹

2. 打开终端cd命令,进入该文件夹

3.在命令行输入“dwarfdump --uuid XXX.app/XXX”

4.在终端中输入以下命令“atos -o XXX.app/XXX -arch arm64 0x00000001006544f8 ”

“0x00000001006544f8” 这个地址是

查看日志搜索“Triggered by Thread”:得到“Triggered by Thread:  0”,我们知道是0号线程闪退,找到0号线程得到如下:

Thread 0 Crashed:

0  libsystem_kernel.dylib        0x00000001833114bc mach_msg_trap + 8

1  libsystem_kernel.dylib        0x0000000183311338 mach_msg + 72

2  CoreFoundation                0x0000000183740ac0 __CFRunLoopServiceMachPort + 196

3  CoreFoundation                0x000000018373e7c4 __CFRunLoopRun + 1032

4  CoreFoundation                0x000000018366d680 CFRunLoopRunSpecific + 384

5  GraphicsServices              0x0000000184b7c088 GSEventRunModal + 180

6  UIKit                          0x00000001884e4d90 UIApplicationMain + 204

7  XXX                      0x00000001006544f8 0x10009c000 + 5997816

8  libdyld.dylib                  0x000000018320e8b8 start + 4

XXX:就是你的XXX.app的名称,找到他的第一个地址,这个地址就是要输入的地址,如果存在多个地址,那么直接在后面追加。

最后显示,是因为友盟统计  的时候 报了错,第一时间跟友盟技术客服沟通,然后他们有记录下,承诺下个版本改进。然后我有查询了一下,使用友盟确实有极小极小的奔溃率,我们app也不是第一个。当然在可接受范围内。以上的crash分析 只是当时那个阶段的解决方式,当然也有更合适的定位方案。

最后结论: 第三方也不要用太多,能自己实现的还是自己实现。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,905评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,140评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,791评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,483评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,476评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,516评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,905评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,560评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,778评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,557评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,635评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,338评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,925评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,898评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,142评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,818评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,347评论 2 342

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,376评论 25 707
  • 在iOS开发中,Crash无疑是App的致命杀手。作为一个严谨的iOS 开发人员来说,写出优秀的健硕的无Crash...
    烈焰德玛阅读 2,631评论 0 11
  • 在iOS开发中,Crash无疑是App的致命杀手。作为一个严谨的iOS 开发人员来说,写出优秀的健硕的无Cr...
    Ekkooo丶阅读 3,796评论 2 22
  • iOS 开发过程中会遇到crash,有些很容易就能定位到,例如数组越界、类型不匹配、方法不存在等。但是有些就比较头...
    LoveY34阅读 8,528评论 1 4
  • 你當竭力在神面前得蒙喜悅,作無愧的工人,按著正意分解真理的道。 要按著按著正意分解真理的道,不去曲解,不用自己所理...
    YNC再寫一篇阅读 157评论 0 0