【问题标题】:Execute symbolicatecrash from shell script从 shell 脚本执行 symbolicatecrash
【发布时间】:2016-08-19 13:50:32
【问题描述】:

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

但它在命令行中运行良好。

symboliccrash CRASH_FILE.crash APP.dSYM > symbolicated.crash

我试图找到 symboliccrash 的来源,但找不到它

which -a symboliccrash

Shell 脚本代码

#!/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

回应

compareUUD.sh: line 7: symboliccrash: command not found

知道我该怎么做。

【问题讨论】:

  • 你能贴出你的shell脚本代码吗?
  • @ReinierMelian 在上面添加shell脚本,希望对你有帮助
  • 好的,我会审查并告诉你任何结果

标签: ios shell sh symbolicatecrash


【解决方案1】:

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

find /Applications/Xcode.app -name symbolicatecrash -type f

在您的终端上,这将检索您的 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

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

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

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

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

【讨论】:

  • 它有效。非常感谢您的 find 电话,我正在尝试“which”
  • 默认情况下,非交互式 shell 中不会扩展别名,即使您在 shell 中定义了别名也是如此。最好将所需目录添加到PATH