#定义全局变量 filePath= #输入文件路径 inputFile() { readSuccess=false #首先清空变量值 filePath= while [ $readSuccess = false ]; do echo $1 #读取到变量中 read -a filePath if [[ ! -e $filePath || ${filePath##*.} != $2 ]]; then echo "Input file is not ."$2 else readSuccess=true fi done }
.dSYM 是文件夹路径,所以这里简单的判断了路径是否存在,如果不存在就继续让用户输入。
Shell命令中判断分为[]与[[]],后者比前者更通用,可以使用 || 正则运算等。
判断中,-f表示检查是否存在该文件,-d表示检查是否存在文件夹,-e表示检查是否存在该路径
输入dSYM符号表
1 2 3 4 5 6 7 8 9 10 11 12 13 14
dsymSuccess=false while [ $dsymSuccess = false ]; do #要求输入dSYM文件路径 inputFile 'Please Input dSYM File' 'dSYM' dsymPath=$filePath #检查是否匹配 checkUUID "$crashPath" "$dsymPath" match=$? if [ $match -eq 0 ]; then echo 'UUID not match!' else dsymSuccess=true fi done
循环获取匹配 UUID 的 dSYM ,这里使用了另一种方法获取方法返回值,具体之后章节会总结。
查找symbolicatecrash工具
在 Xcode 文件夹指定路径下查找工具,加快效率,如果没找到就停止运行。
1 2 3 4 5 6
# 查找symbolicatecrash解析工具,内置在Xcode的库文件中 toolPath=`find /Applications/Xcode.app/Contents/SharedFrameworks -name symbolicatecrash | head -n 1` if [ ! -f $toolPath ]; then echo "Symbolicatecrash not exist!" exit 0 fi
v1.5.2