iPhone crash管理

# 背景

* 每日线上会收集回来很多的崩溃信息,但我们往往关心的是有多少类,及该类崩溃信息对应的系统、硬件分布、崩溃pv、uv等情况

* 版本间崩溃对比,top20问题是否有变动,历史版本崩溃是否被修复,线上版本是否有新增崩溃

# 分析崩溃

### 第一步、符号化崩溃日志

### 第二步、获取单个崩溃日志的各项信息

* 获取崩溃线程,然后对线程信息做处理得出崩溃唯一标识

```

# 这块暂时不做容错,默认crash均是完整

lastExceptionBacktrace = re.search(r"Last Exception Backtrace:(.+?)Thread ", c_content, re.S)

if lastExceptionBacktrace:

crash_info["crash_thread_detial"] = lastExceptionBacktrace.group(1).strip()

else:

try:

crash_info["crash_thread_detial"] = re.search(r'Crashed:(.+?)Thread ',c_content ,re.S).group(1).strip()

except:

print "no Crashed word:",crashPath

return None

```

* 获取系统版本

`crash_info["os_version"] = re.search(r"OS Version:(.+)", c_content).group(1).strip()`

* 获取设备硬件信息

- `crash_info["hardware"] = re.search(r"Hardware Model:(.+)", c_content).group(1).strip()`

- 一般需要做一个映射关系

```

INTERNAL_NAME = {

# iPhone 映射关系

"iPhone1,1": "iPhone",

"iPhone1,2": "iPhone 3G",

"iPhone2,1": "iPhone 3GS",

"iPhone3,1": "iPhone 4",

"iPhone3,2": "iPhone 4",

"iPhone3,3": "iPhone 4",

"iPhone4,1": "iPhone 4S",

"iPhone5,1": "iPhone 5",

"iPhone5,2": "iPhone 5",

"iPhone5,3": "iPhone 5c",

"iPhone5,4": "iPhone 5c",

"iPhone6,1": "iPhone 5s",

"iPhone6,2": "iPhone 5s",

"iPhone7,2": "iPhone 6",

"iPhone7,1": "iPhone 6 Plus",

"iPhone8,1": "iPhone 6s",

"iPhone8,2": "iPhone 6s Plus",

# iPad 映射关系

"iPad1,1": "iPad",

"iPad2,1": "iPad 2",

"iPad2,2": "iPad 2",

"iPad2,3": "iPad 2",

"iPad2,4": "iPad 2",

"iPad3,1": "iPad 3",

"iPad3,2": "iPad 3",

"iPad3,3": "iPad 3",

"iPad3,4": "iPad 4",

"iPad3,5": "iPad 4",

"iPad3,6": "iPad 4",

"iPad4,1": "iPad Air",

"iPad4,2": "iPad Air",

"iPad4,3": "iPad Air",

"iPad5,3": "iPad Air 2",

"iPad5,4": "iPad Air 2",

"iPad6,7": "iPad Pro",

"iPad6,8": "iPad Pro"

}

```

* 获取app版本

`crash_info["app_version"] = re.search(r"Version:(.+)", c_content).group(1).strip()`

### 第三步、根据上述获取到的信息做聚类即可

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一直在网上看到的都是oc 的获取设备名称, 然后自己想找一个swift 方式的去获取, 然后找到了一个外国人的帖子...
    格调main阅读 2,525评论 0 3
  • 在开发过程中,需要知道设备信息。 我们直接获取到的都是设备编码如"iphone7,2",需要做一个转换,才能被大众...
    wfg西游阅读 1,543评论 1 0
  • iOS获取设备型号和App版本号等信息(OC+Swift) 获取设备名称OC代码 NSString *device...
    f48ac133a97f阅读 2,144评论 2 1
  • 文/荼尘 一夜梦三场,寐而不实。晨,门外有淅落嘈杂之声。室内昏暗,摸索手机开机,荧屏微光,颇为刺眼,遂反置之。顿,...
    荼尘Ice阅读 624评论 0 2
  • 在这个时代的任何场景下,不是只要足够努力就能成功,而是需要加上足够有用的信息辅助,才更容易事半功倍。如何轻松获取关...
    my彩色沙漠阅读 367评论 1 7