Crash日志的程序化符号化

3
我正在尝试对自动发送到服务器的崩溃日志进行符号化。我的应用程序的崩溃日志和dSYM文件在应用程序崩溃时发送到服务器。我遇到的问题是符号化它们。我想通过编程方式执行此操作,以便该过程可以自动化。因此,我正在尝试将symbolicatecrash终端命令作为python脚本中的子进程使用。但是,在我尝试实现之前,我需要使symbolicatecrash正常工作。输入以下命令失败:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash -o /Users/aj/Documents/symbolicatedcrash.crash com.COMPANYNAME.TEST_APP.crash TEST_APP.app.dSYM
我使用-o选项将输出写入文件。输入此代码不会返回错误。输出文件已创建,只是崩溃日志没有被符号化。
从研究类似问题的人中发现,下载.ipa文件并解压缩它可以有所帮助。我已经这样做了,并发现如果服务器上有.app文件,则symbolicatecrash命令确实会进行符号化。
我的问题是我不想下载.ipa文件。每次出现新的崩溃(或至少新的构建)时下载它对服务器来说是低效的。我只想在每个应用程序崩溃时下载dSYM和崩溃文件本身。
我的问题最终是:我可以仅使用dSYM文件对崩溃日志进行符号化吗?如果可以,是否可以使用symbolicatecrash终端命令完成?
谢谢

请查看此链接 - 它可能会有所帮助 https://dev59.com/43M_5IYBdhLWcg3wQQld?rq=1 - PrasathBabu
谢谢!经过进一步的实验,我发现您确实需要.ipa文件或已归档的应用程序二进制文件才能完全符号化崩溃日志。 - user3915135
1个回答

3
经过进一步实验,我发现您确实需要.ipa文件或已归档的应用程序二进制文件才能完全符号化崩溃日志。
但是,您不需要在终端命令中包含这些文件;如果您在计算机上的任何位置都有应用程序二进制文件,则问题中提供的示例将起作用。该命令将使用Spotlight查找应用程序二进制文件,然后返回一个完全符号化的崩溃日志。
注意:为了获得完全符号化的日志,您的二进制文件/崩溃日志/dSYM文件必须来自同一版本构建。

有趣。这似乎与Crashlytics在回答此问题时所说的相矛盾:http://stackoverflow.com/questions/40163455/dsym-and-binary-required-to-symbolicate-or-just-dsym - stonedauwg
@stonedauwg 嗯,有趣。虽然我已经离开这个问题一段时间了,但我想知道 dSYMs 是否是您需要像那个链接提到的那样进行符号化的唯一组件。也许手动符号化需要其他文件出于安全目的而存在,而 Crashlytics 已经找到了解决方法。或者现在几年过去了,这个过程也可能已经更新了。 - user3915135

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