前言
最近看到的很多文章都有效率这个词,意在程序员如何利用各种工具,来少做重复的事情;本着实践的态度,我写了一个脚本,用来快速分析iOS开发中的crash日志。
对于iOS开发中的崩溃日志分析,这里有篇文章介绍的十分详细:iOS开发技巧 - 崩溃分析。
脚本
#!/bin/bash
# 检查 symbolicatecrash
echo "正在检查symbolicatecrash路径..."
symbolicatecrashPath=$(ls /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash)
if [[ ${#symbolicatecrashPath} -lt 1 ]];
then
echo "未发现symbolicatecrash,请保证当前为Xcode8.0以上版本"
exit 0
fi
# 检查当前路径是否有dSYM
echo "正在检查dSYM文件是否存在..."
dSYMPath=$(ls | grep \\.dSYM)
if [[ ${#dSYMPath} -lt 1 ]];
then
echo "脚本所在目录无dSYM文件,请检查后重试"
exit 0
fi
# 检查当前文件夹是否存在.crash文件,并设置环境变量
files=$(ls | grep \\.crash | cut -f 1 -d .)
if [[ ${#files} -gt 0 ]];
then
echo "正在设置环境变量..."
export DEVELOPER_DIR=/Applications/XCode.app/Contents/Developer
else
echo "未发现.crash结尾的日志文件"
exit 0
fi
echo "正在创建输出文件夹..."
mkdir symbol
# 根据DSYM生成symbol
for name in $files
do
echo "正在分析日志:$name.crash..."
$symbolicatecrashPath ./$name.crash ./dSYMPath > $(pwd)/symbol/$name"_symbol.crash"
done
echo "已经将分析后的文件输出到symbol文件夹下"
大家可以下载脚本或新建一个文件,将其命名为do.sh
并将上述内容复制到其中,然后将.dSYM
文件、.crash
文件和该脚本放在同一个文件夹下(不需要将symbolicatecrash
放在其中),然后进行如下步奏:
- 1、打开终端,进入到脚本所在文件夹;
- 2、在终端中输入:
sh do.sh
,等待执行完成,分析后的文件会在当前目录的symbol
子目录中。
结尾
希望这个脚本能在以后分析崩溃日志时节约一些时间,当然更重要的是践行“效率”这个思想。
网友评论