# !/bin/sh
INPUTFILE=$1
#echo "extension:${INPUTFILE##*.}"
DSYM_FILE=""
#从目录中查找dSYM文件
#参数1:文件路径
function findSymbolFileInFolder() {
echo $(pwd)
for file in `find "$(pwd)"`
do
extension="${file##*.}"
if [ "$extension" == "dSYM" ]
then
DSYM_FILE=${file}
echo "Find dSYM: ${DSYM_FILE}"
fi
done
}
#获取文件名
#echo "filename:${INPUTFILE%.*}"
FILENAME=${INPUTFILE%.*}
OUTFILE=$FILENAME.log
echo "InputFile:${INPUTFILE}, OutputFile:${OUTFILE}"
#检查dSYM文件
findSymbolFileInFolder
if [[ -z ${DSYM_FILE} ]]; then
echo "[******************** Checking file failed: No dSYM!!!, now ending... ********************]\n"
exit
fi
dwarfdump --uuid ${DSYM_FILE}
echo "Now analysing..."
#环境变量设置
export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer"
#将解析工具拷贝到当前目录下
cp /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash symbolicatecrash
#./symbolicatecrash ${INPUTFILE} LCIphoneAdhocIP.app > ${OUTFILE}
./symbolicatecrash ${INPUTFILE} > ${OUTFILE}
echo "Succeed..."
#打开解析后的日志
open ${OUTFILE}
简单的日志解析脚本,方便使用,用法:
将decode.sh拷贝到符号文件同目录下
控制端输入 ./decod.sh filename.extension,如./decode 1.crash
完成后自动输出 filename.log,如1.log