热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

呦,应用又闪退啦?

在iOS开发中,bug从来都叫人尴尬又头秃,bug中又以线上崩溃最为致命。本地尚且能相视一笑而后猥琐排查,如果线上应用崩溃,

在iOS开发中,bug从来都叫人尴尬又头秃,bug中又以线上崩溃最为致命。本地尚且能相视一笑而后猥琐排查,如果线上应用崩溃,就需要考验职业素养了。

在下的经验是做好实名被喷的准备,但面上一定要稳如老狗,要知道应用的崩溃信息是什么,从而获取应用的崩溃信息,找到问题点,尽可能不露痕迹的把这个锅甩出去。

常见收集用户使用时出现的崩溃信息方式有三种(新版iTunes Connect已经不能查看崩溃日志了)

利用Xcode导出相关的崩溃信息

直接导出错误日志适用于能复现闪退的场景,将手机连接到Mac,选择Xcode->Windows->Device and Simulator,点击View Device Logs,会看到很多Log,其中Type为Crash的就是崩溃的Log,如下图:

使用第三方SDK

如鹅厂的Bugly、友盟、KSCrash 等

Bugly首先需要注册账号,创建应用,创建成功之后会获取Appid 和 Appkey

接下来在测试项目中初始化SDK并人为的制造一个崩溃(哈哈哈哈哈哈哈写bug我可太有经验了)

需要注意的是,debug模式下无法收集异常,需要改为Release

刷新平台,很快就能看到收集的异常,这个就很优秀了,点个赞哇~


友盟集成前同样需要在平台注册账号,创建应用,获取 Appkey

接下来在测试项目中初始化SDK,由于收集app使用过程中产生的Crash信息,统计SDK默认是开启Crash收集机制的,所以我们就直接初始化统计SDK

同样是测试一个闪退,能看到收集到的错误列表。友盟有个问题是错误统计并不及时,这个就比较头疼。同学们需要注意检查是否有集成其他第三方错误统计SDK,或自己获取错误信息的方法,如有此情况,则U-App无法统计到错误信息。

到这里基本能满足一般的日志收集需求,但是有时候美丽而迷人的产品大大可能会觉得为什么我们要把自己的信息放到别人的服务上,这样真的好吗?你们就不能优化一下吗??!!!

我可以,我当然可以,成年的社畜怎么能说自己不行!

我们来康康KSCrash吧!KSCrash集成同样可以选择自动集成或者手动集成,一般就直接引入了

KSCrash主要提供了多种安装收集方式:

  • KSCrashInstallationStandard(崩溃日志发到服务器)

  • KSCrashInstallationHockey(隐式收集)

  • KSCrashInstallationEmail(将崩溃日志发到邮箱)

  • KSCrashInstallationConsole(输出崩溃日志)

更多信息有兴趣的小宝贝可以到github查看

https://github.com/kstenerud/KSCrash

通过KSCrash类来设置各项属性

事情到这里已经很好了对不对,但是如果你的产品大大也和我的一样希望获取Crash日志然后转成Apple format 作为参数之一再自己实现上传Crash文件,那么可以来看看KSCrashReportFilterAppleFmt这个类

到这里,就得到了Apple format 的Crash文件,接下来你可以对它做任何处理,想怎么传就怎么传!

通过iOS自带的函数

函数NSSetUncaughtExceptionHandler

程序启动的时候添加 NSSetUncaughtExceptionHandler,在程序发生异常的时候可以捕捉到异常信息,再进行适当的处理反馈,需要注意的是自定义NSSetUncaughtExceptionHandler可能会会导致第三方监听失效哦~

以上是常用的几种收集日志的方式。

最理想的情况当然是手机连接直接导出日志,但实际开发过程中,尤其是应用发布之后,这种好事大多数时候只是一个理想值。

使用大厂的成品SDK也是一个不错的收集方式,集成方便且资料齐全,日志数据也都清晰明了,但是缺点是将数据放到三方平台,可能会有安全性问题。

相比之下集成开源SDK,将Crash日志传到自家的服务则可以避免这个问题,但是缺陷也很明显,这种方式不会像平台化的产品给到统计趋势分析分类。

所以具体实战过程中,要根据需求和侧重点进行取舍。

欢迎大家一起探讨!

好啦,就到这里啦,等产品妹子再揍我的时候,我再来和大家侃侃日志解析,爱你们呦~啵~~~~~~

关于作者:李二,普元移动端开发工程师,目前参与Mobile 8.0项目的开发。互联网技术猥琐发育人员,主攻移动端开发。

关于EAWorld:微服务,DevOps,数据治理,移动架构原创技术分享。长按二维码关注!

在看点这里


推荐阅读
  • Android日历提醒软件开源项目分享及使用教程
    本文介绍了一款名为Android日历提醒软件的开源项目,作者分享了该项目的代码和使用教程,并提供了GitHub项目地址。文章详细介绍了该软件的主界面风格、日程信息的分类查看功能,以及添加日程提醒和查看详情的界面。同时,作者还提醒了读者在使用过程中可能遇到的Android6.0权限问题,并提供了解决方法。 ... [详细]
  • iOS Swift中如何实现自动登录?
    本文介绍了在iOS Swift中如何实现自动登录的方法,包括使用故事板、SWRevealViewController等技术,以及解决用户注销后重新登录自动跳转到主页的问题。 ... [详细]
  • gitlab重置password
    ruby没怎么学,自己搭建的gitlab的rootpassword又忘了。幸好看见此帖子,试验okhttp:roland.kierkels.netgitreset-your-git ... [详细]
  • 1.webkit内核中的一些私有的meta标签,这些meta标签在开发webapp时起到非常重要的作用(1) ... [详细]
  • iOS开发Debug和Release的理解
    2019独角兽企业重金招聘Python工程师标准参考:http:blog.csdn.netmad1989articledetails406580331&# ... [详细]
  • 使用nodejs爬取b站番剧数据,计算最佳追番推荐
    本文介绍了如何使用nodejs爬取b站番剧数据,并通过计算得出最佳追番推荐。通过调用相关接口获取番剧数据和评分数据,以及使用相应的算法进行计算。该方法可以帮助用户找到适合自己的番剧进行观看。 ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • 本文讲述了如何通过代码在Android中更改Recycler视图项的背景颜色。通过在onBindViewHolder方法中设置条件判断,可以实现根据条件改变背景颜色的效果。同时,还介绍了如何修改底部边框颜色以及提供了RecyclerView Fragment layout.xml和项目布局文件的示例代码。 ... [详细]
  • 20211101CleverTap参与度和分析工具功能平台学习/实践
    1.应用场景主要用于学习CleverTap的使用,该平台主要用于客户保留与参与平台.为客户提供价值.这里接触到的原因,是目前公司用到该平台的服务~2.学习操作 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 本文介绍了深入浅出Linux设备驱动编程的重要性,以及两种加载和删除Linux内核模块的方法。通过一个内核模块的例子,展示了模块的编译和加载过程,并讨论了模块对内核大小的控制。深入理解Linux设备驱动编程对于开发者来说非常重要。 ... [详细]
  • 本文介绍了在wepy中运用小顺序页面受权的计划,包含了用户点击作废后的从新受权计划。 ... [详细]
  • http:oj.leetcode.comproblemsminimum-depth-of-binary-tree贡献了一次runtimeerror,因为如果输入为{}即空的时候,出 ... [详细]
author-avatar
手机用户2502885441
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有