执行shell脚本中的symbolicatecrash

5

我正在尝试从循环遍历多个崩溃日志文件并输出符号化版本的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脚本代码吗? - Reinier Melian
@ReinierMelian 在上面添加一个shell脚本,希望能对你有所帮助。 - asif_al
好的,我会进行审核并告诉您任何结果。 - Reinier Melian
1个回答

7

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

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执行即可,我已经测试过并出现了此错误:

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

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


它可以工作了。非常感谢你的发现调用,我之前一直在尝试使用“which”。 - asif_al
1
默认情况下,非交互式 shell 不会展开别名,即使您在 shell 中定义了别名。最好只是将所需的目录添加到 PATH 中。 - chepner

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接