iOS崩溃治理--开篇
去年我开始负责iOS崩溃治理的工作,从原来的万分之五崩溃率,一直到现在的万分之一左右的崩溃率,期间踩了很多坑,因此想和大家分享一下,希望能对大家有所帮助,也欢迎大家私信交流。
如果你打算开始治理崩溃的话,建议你先想一下以下的问题:
如何高效地去定位修复崩溃?
修复线上收集到的崩溃,可以说这是无法避免的体力活,大部分的崩溃事实上并不复杂,都不难解决,但怎么快速定位是个问题。
大部分的崩溃堆栈很清晰,通过日志我们可以很容易定位到有问题的代码,但有些崩溃日志,很可能只有一堆系统相关的堆栈,很难对应到业务代码。对于类似情况,有没有相关的应对方案,决定了你的崩溃修复效率。
除了解决线上收集到的崩溃还要做些什么?
解决线上收集到的崩溃是必须的,但这只是个必要不充分条件。如果你只是case by case地解决线上崩溃,那很快你就会疲于奔命,被困在无休止的体力活当中。
原因主要有以下几点:
1,你所处的项目比较大,可能涉及到好几个团队的协作
2,每次发版都可能引入新的崩溃
3,后端的改动也可能引起线上崩溃
4,新系统的发布也可能引起问题
如何推动跨团队的协作?
对于一个比较大的App来说,通常都会涉及到多个团队的合作。比如说,登录SDK,IM,日志上报等功能,一般都会有专门的团队负责。也就是说,线上的某个崩溃很可能要找另外一个团队的人解决,即使你知道怎么修复,也很可能没权限。这时候仅仅靠你去协调是不现实的,这会耗费你大量的精力。
每次发版总会有新的崩溃要如何解决?
新需求总是会伴随着或多或少的崩溃,每次发版都会有着上涨的风险,毕竟研发和QA也都是普通人,不可能不毫无遗漏。要如何降低这种风险,以及在问题发生之后如何及时止损。
线上突然爆出问题该怎么办?
线上突然出现崩溃的情况其实并不少见,尤其是和服务端交互比较多的App,甚至是一些有网络请求的三方库也可能引起类似问题,这时候要怎么及时发现问题, 如何及时修复止损。
有没有一劳永逸的方法?
这是终极目标,但是很难,因为项目总在迭代,即使你不迭代(不迭代这项目也没有什么价值了),系统也会更新。但即使做不到一劳永逸,我们是不是可以找到一些方式,让我们只需要花很少的时间来维持线上稳定。
对于这些问题,从手段方面,我分为三种,基础设施,流程规范,技术防控。从时间点上,又可以分为事前,事中,事后。后续我会从这些方面来跟大家分享自己的一些经验,有些内容可能在大家的项目中已经实现了甚至是做的更好,有些内容可能是你所欠缺的,希望能和大家多多交流。
iOS崩溃治理--开篇的更多相关文章
- iOS崩溃调试的使用和技巧总结
在iOS开发调试过程中以及上线之后,程序经常会出现崩溃的问题.简单的崩溃还好说,复杂的崩溃就需要我们通过解析Crash文件来分析了,解析Crash文件在iOS开发中是比较常见的. 现在网上有很多关于解 ...
- Android&iOS崩溃堆栈上报
Android&iOS崩溃堆栈上报 原文地址:http://www.cnblogs.com/songcf/p/4885468.html 通过崩溃捕获和收集,可以收集到已发布应用(游戏)的异常, ...
- iOS崩溃日志ips文件解析
iOS崩溃日志ips文件解析 一 简介 测试组的同事在进行稳定性测试时,通常会遇到一些崩溃,然后他们会将这些崩溃日志(一般是ips格式的文件)反馈给开发进行分析,但是这些ips文件中的内容通常是如下 ...
- 详解没有dSYM文件 如何解析iOS崩溃日志
Xcode支持崩溃日志自动符号化,前提是本地有当时Build/Archive生成的dSYM文件,iOS崩溃日志符号化后,可以帮助开发者更好的定位问题,但如果dSYM文件丢失或拿到的崩溃日志不是标准的c ...
- 转: iOS崩溃堆栈符号表使用与用途
转:http://bugly.qq.com/blog/?p=119 iOS崩溃堆栈符号化,定位问题分分钟搞定! 2015.3.16 腾讯Bugly 微信分享 最近一段时间,在跟开发者沟通过程中,萝 ...
- iOS 崩溃日志分析(个人总结,最实用)
iOS 崩溃日志分析(个人总结,最实用) 要分析奔溃日志需要三个文件:crash日志,symbolicatecrash分析工具,.dSYM符号集 0. 在桌面创建一个crash文件夹 1. 需要Xco ...
- iOS崩溃日志
今天看crash report ,有这样两个crash: 调用 stopUpdatingLocation 函数的是一个CLLocationManager 类型的对象,为什么报错的时候会把这个对象转成N ...
- 常用获取Android崩溃日志和IOS崩溃日志的几种方法
一:前言 在日常测试app时,经常会遇到崩溃问题,测试快速抓取到崩溃日志可以有效方便开发进行定位,快速解决问题所在测试做到测试分析,定位是非常重要的,这也是判断一个测试能力指标的一大维度. 二:And ...
- iOS 崩溃日志 Backtrace的符号化
iOS的崩溃日志配合dsym文件可以找到崩溃时的backtrace,这是解决崩溃的最重要的信息. 如果是在同一台mac上打包, 导入crash log时候会自动将backtrace符号化,可以看到方法 ...
随机推荐
- django搭建完毕运行显示hello django
1.使用pycharm打开工程,进入工程配置解释器路径 2.视图和url 视图:处理我们从业务的地方,可以理解为函数 url:进行路由匹配的地方,先在主工程bookpro中进行匹配,如果匹配ok,那么 ...
- sqli-labs-master less05 及 Burp Suite暴力破解示例
一.首先测试显示内容 例:http://localhost/sqli-labs-master/Less-5/?id=1 http://localhost/sqli-labs-master/Less-5 ...
- 02_启动和销毁Service
在Application关闭后,Service仍然会运行. package com.example.servdemo; import android.app.Activity; import andr ...
- Spring Boot 2.4.0 发布,配置文件重大调整,不要乱升级!!
前段时间 Spring Boot 2.4.0 发布了,栈长作了一个新特性全盘解读,其中介绍了一个很重要的变革,那就是配置文件. 配置文件可是每个框架的核心,不得不搞清楚,所以,这篇栈长就带大家深入实战 ...
- redis分布式锁解决超卖问题
redis事务 redis事务介绍: 1. redis事务可以一次执行多个命令,本质是一组命令的集合. 2.一个事务中的所有命令都会序列化,按顺序串行化的执行而不会被其他命令插入 作用:一个队列 ...
- 2017 Mid Central Regional G. Faulty Robot(dfs + 尬模)
这道题看上去太像tarjan缩点了,我一上去本来想把所有的环给缩掉然后统计答案,后来发现哦,这道题不是这么回事儿. 给出黑边红边,一次性走至多只能走一次黑边,问有多少个点可以走到,并且让机器人停下来, ...
- 第11.1节 Python正则表达式概述
正则表达式是可匹配文本片段的模式,一个正则表达式指定了一个与之匹配的字符串集合.最简单的正则表达式为普通字符串,与它自己匹配.如正则表达式'python'与字符串'python'匹配.通过匹配,可以在 ...
- 分布式存储系统-HDFS
1 HDFS 架构 HDFS作为分布式文件管理系统,Hadoop的基础.HDFS整体架构包括:NameNode.DataNode.Secondary NameNode,如图: HDFS采用主从式的分布 ...
- 题解-[NOI2005]瑰丽华尔兹
题解-[NOI2005]瑰丽华尔兹 [NOI2005]瑰丽华尔兹 \(n\times m\) 的矩阵.以 \((x,y)\) 为起点.一共 \(k\) 段时间,每段时间为 \([s_i,t_i](t_ ...
- Power BI八年回望记
本人从事BI,数据仓库领域相关工作15个年头,这15年目睹了这个方向从火爆到逐渐被大数据领域不断吞食.中间零散关注Power BI好长时间,也算目睹了它的成长. 那天在网络上搜索power bi,无意 ...