iOS批量分析并统计Crash日志atos atosl symbolicate

原文地址
iOS批量分析并统计Crash日志atos atosl symbolicate

需求及可行性分析

  1. 在Linux下直接用atosl工具符号化crash日志;
  2. 在Mac下,从服务端批量拉取crash日志文件,对crash做符号化,并提取里面字段插入数据库,供统计展示使用。需要用脚本定时自动化去跑。
    分析:
    针对第一种在Linux下分析,这种难度较高,atosl是多年前开源的一个工具,现在已不维护,经过修改后,只能解出部分arm64日志文件,修改后的atosl,依然不能正常工作,运行性能也不高,所以放弃;
    第二种解决方案中,Mac下对符号化支持比较好,atos或者symbolicate符号化工具,可行性较高。

使用工具

采用SYM工具,用swift编写的mac程序.

执行方案

采用如下流程:

iOS批量分析并统计Crash日志atos atosl symbolicate_第1张图片
Mac下符号化并统计图解

在SYM程序中,已把信息提取出来,并把每一行的数据以tab分割,结尾处以回车分割,插入到文件 ~/Documents/Crash/sql.txt,这样文件中,每一行为数据库中的每一条数据。

数据库

安装好数据库,建好数据库名(crash),表名(oaim)。
在db.sh脚本中做从文件中读取数据,插入到数据中的操作:

mysql --host=localhost --user=youusername --password=yourpassword crash << EOF
load data local infile '~/Documents/Crash/sql.txt' into table oaim columns terminated by '\t';
# insert into oaim_st(identifier, time,title, description) values ('iidd13434','2017-09-12', 'tdfdfdfdfdfdfdfdfesttewfsdfdf');
EOF

第三行为单行插入,已注释掉。

run script

在crash.sh中,这样去写:

#!/bin/bash
# 打开SYM打包好的Mac app
open ~/Documents/soft/SYM.app
# 打开后自动符号化特定目录下的crash文件,根据估算,这里写了个40秒
sleep 40
# 40秒后,关闭app
osascript -e 'quit app "SYM"'
echo "save sql.txt finished"
# 执行存储到数据库的脚本
. ~/test/db.sh
sleep 10
echo "load sql.txt to mysql finished!"
# 清理文件
rm -rf /Users/Shawn/Documents/Crash/sql.txt
echo "clean sql.txt" finished

原文地址

你可能感兴趣的:(iOS批量分析并统计Crash日志atos atosl symbolicate)