我想尝试和象征我的iPhone应用程序的崩溃报告。

我从iTunes Connect上找到了崩溃报告。我有提交给App Store的应用程序二进制文件,我有作为构建的一部分生成的dSYM文件。

我将所有这些文件放在一个目录中,该目录以spotlight为索引。

现在该做什么?

我试着引用:

symbolicatecrash crashreport.crash myApp.app.dSYM

它只输出与崩溃报告开始时相同的文本,没有符号。

我做错什么了吗?


当前回答

使用XCode自动生成崩溃报告的步骤:

为xcode 9更新

将任何iOS设备连接到你的Mac(是的,物理设备,是的,我知道这很愚蠢) 从“窗口”菜单中选择“设备” 在左侧单击设备,在右侧单击“查看设备日志” 等待。可能要过一分钟才会出现。也许按Command-A键然后删除可以加快速度。 关键的未记录步骤:将你从iTunesConnect中获得的崩溃报告从.txt扩展名重命名为.crash扩展名 将坠机报告拖到左侧的区域

然后Xcode会将崩溃报告符号化并显示结果。

来源:https://developer.apple.com/library/ios/technotes/tn2151/_index.html

其他回答

对于那些在2022年寻找有效解决方案的人

符号化iPhone应用程序崩溃报告的步骤

将苹果提供的。txt格式的崩溃日志转换为。crash Xcode >窗口>设备和模拟器 必须选择已连接并正在运行的ios设备。(不是模拟器,也不是脱机设备) 选择All Logs部分,拖放.crash文件


请注意,其他具有symbolicatecrash的解决方案已弃用,其用法显示:

⚠️symbolicatecrash已弃用;它将在Xcode⚠️的未来版本中被删除

尽管我已经开发了几年的应用程序,这是我第一次调试二进制文件,我觉得自己像一个完全的NOOB,弄清楚所有的文件在哪里,即*在哪里。应用程序*。dSYM和崩溃日志?为了弄清楚这个问题,我不得不阅读多篇文章。图片胜过千言万语,我希望这篇文章能在将来对其他人有所帮助。

1-首先去itunesconnect下载你的崩溃日志。 注意:在大多数情况下,您可能会得到类似于“提交的报告太少而无法显示报告”的内容。基本上没有足够多的用户向苹果提交崩溃日志报告,在这种情况下,你什么都做不了。

2-现在如果你没有改变你的代码,因为你已经提交了你的二进制文件给苹果,然后启动Xcode的项目,并再次执行Product -> Archive。否则,只需找到您最近提交的二进制文件,并右键单击它。

神奇的Xcode Organizer并没有那么神奇地象征我的应用程序。我从苹果那里得到的应用程序提交失败的崩溃报告中没有任何符号。

我尝试使用命令行,将崩溃报告与.app文件(我提交给商店的文件)和.dSYM文件放在同一个文件夹中:

$ symbolicatecrash "My App_date_blahblah-iPhone.crash" "My App.app"

这只为我的应用程序提供了符号,而不是核心基础代码,但它比Organizer提供给我的数字转储要好,足以让我找到并修复应用程序的崩溃。如果有人知道如何扩展这一点,以获得基金会的符号,这将是赞赏的。

我喜欢使用Textwrangler来精确定位原始应用程序上传二进制拒绝中的错误。(崩溃数据将在你的itunesConnect账户中找到。)使用上面萨钦的方法,我复制了原文。崩溃到TextWrangler,然后复制符号崩溃文件,我已经创建到另一个TextWrangler文件。比较这两个文件可以发现不同之处。符号崩溃文件将有差异,指出文件和行数的问题。

我在我的应用程序中使用Airbrake,它在远程错误记录方面做得相当不错。

下面是我如何用atos来表示它们,如果回溯需要的话:

In Xcode (4.2) go to the organizer, right click on the archive from which the .ipa file was generated. In Terminal, cd into the xcarchive for instance MyCoolApp 10-27-11 1.30 PM.xcarchive Enter the following atos -arch armv7 -o 'MyCoolApp.app'/'MyCoolApp' (don't forget the single quotes) I don't include my symbol in that call. What you get is a block cursor on an empty line. Then I copy/paste my symbol code at that block cursor and press enter. You'll see something like: -[MyCoolVC dealloc] (in MyCoolApp) (MyCoolVC.m:34) You're back to a block cursor and you can paste in other symbols.

能够在不重新进入第一个位的情况下回溯一个项目是一个很好的节省时间的方法。

享受吧!