从shell脚本执行symbolicatecrash

asi*_*_al 4 shell sh symbolicatecrash ios

我试图从一个 shell 脚本调用symboliccrash,该脚本循环遍历多个崩溃日志文件并输出符号化版本,但它失败并显示错误消息“找不到命令”

但它在命令行中工作正常。

symboliccrash CRASH_FILE.crash APP.dSYM > symbolicated.crash
Run Code Online (Sandbox Code Playgroud)

我试图找到符号崩溃的来源,但找不到它

which -a symboliccrash
Run Code Online (Sandbox Code Playgroud)

外壳脚本代码

#!/usr/bin/bash
export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer"
i=0

for x in *.crash;
do
        symboliccrash $x MyApp.dSYM > $i.crash
        i=$((i+1))
done
Run Code Online (Sandbox Code Playgroud)

回复

compareUUD.sh: line 7: symboliccrash: command not found
Run Code Online (Sandbox Code Playgroud)

任何想法我怎么能做到这一点。

Rei*_*ian 5

我认为你首先需要的是执行这个命令

find /Applications/Xcode.app -name symbolicatecrash -type f
Run Code Online (Sandbox Code Playgroud)

在您的终端上,这将检索您的symbolicatecrash类似内容的本地化

/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash

那么您需要将脚本更新为此代码

#!/usr/bin/bash
export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer"

alias symbolicatecrash='/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash'

i=0

for x in *.crash;
do
        symbolicatecrash $x MyApp.dSYM > $i.crash
        i=$((i+1))
done
Run Code Online (Sandbox Code Playgroud)

并替换symbolicatecrash为由执行给出的结果的方向find /Applications/Xcode.app -name symbolicatecrash -type f

就是这样,执行sudo sh,我测试并导致此错误

在 /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash line 1007 处的 0.crash 中没有崩溃报告版本。

但我假设这个错误是因为我没有任何崩溃或 dSYM 所以我认为现在正在工作,我希望这对你有帮助