我想尝试和象征我的iPhone应用程序的崩溃报告。
我从iTunes Connect上找到了崩溃报告。我有提交给App Store的应用程序二进制文件,我有作为构建的一部分生成的dSYM文件。
我将所有这些文件放在一个目录中,该目录以spotlight为索引。
现在该做什么?
我试着引用:
symbolicatecrash crashreport.crash myApp.app.dSYM
它只输出与崩溃报告开始时相同的文本,没有符号。
我做错什么了吗?
我想尝试和象征我的iPhone应用程序的崩溃报告。
我从iTunes Connect上找到了崩溃报告。我有提交给App Store的应用程序二进制文件,我有作为构建的一部分生成的dSYM文件。
我将所有这些文件放在一个目录中,该目录以spotlight为索引。
现在该做什么?
我试着引用:
symbolicatecrash crashreport.crash myApp.app.dSYM
它只输出与崩溃报告开始时相同的文本,没有符号。
我做错什么了吗?
当前回答
在Xcode 4.2.1中,打开管理器,然后进入库/设备日志,将.crash文件拖到崩溃日志列表中。它将在几秒钟后为您显示。
注意,你必须使用与原始版本存档相同的Xcode实例(即,你的版本的存档必须存在于Organizer中)。
其他回答
分析苹果崩溃报告的步骤:
将推送到appstore的发布版.app文件、发布时创建的. dsym文件以及从APPLE收到的崩溃报告复制到一个文件夹中。 打开终端应用程序,进入上面创建的文件夹(使用cd命令) 执行命令atos -arch armv7 -o APPNAME。app /浏览器名称MEMORY_LOCATION_OF_CRASH。内存位置应该是应用程序根据报告崩溃的位置。
例如:atos -arch armv7 -o 'APPNAME。应用0 x0003b508”/“浏览器名称”
这将向您显示导致崩溃的确切方法名称。
[classname functionName:];-510年
Symbolicating音标
如果我们使用IPA作为符号-只要用。zip重命名扩展名。IPA,然后我们就可以得到一个包含app的有效载荷文件夹。在这种情况下,我们不需要. dsym文件。
Note
这只能在应用程序二进制没有符号剥离的情况下工作。默认情况下,发布版本会删除符号。我们可以在项目构建设置“复制过程中的条带调试符号”中将其更改为NO。
更多细节请看这篇文章
我发现大多数提议的替代方案在最新的XCode中都不起作用(用XCode 10测试)。例如,我在Xcode -> Organizer -> Device logs -view中拖放.crash日志时没有运气。
我推荐使用Symbolicator工具https://github.com/agentsim/Symbolicator
Git克隆Symbolicator存储库,并用Xcode编译和运行 复制.crash文件(ascii文件,请求文件中有堆栈跟踪)和崩溃释放的.xarchive到同一个临时文件夹 拖放.crash文件到Dock中的Symbolicator图标 在5-30秒内,符号崩溃文件将在.crash和.xarchive所在的相同文件夹中生成
只是xcode 6.1.1的一个简单更新的答案。
步骤
xcode 1. >窗口>设备。
2.从设备部分下的设备列表中选择一个设备。
3.选择“查看设备日志”。
4.在All Logs部分下,您可以直接拖放report.crash
5.Xcode会自动为你生成崩溃报告。
6.您可以通过将符号化崩溃报告的日期/时间与崩溃报告中提到的日期/时间匹配来找到符号化崩溃报告。
对我有效的组合是:
将dSYM文件复制到崩溃报告所在的目录中 解压包含应用程序的ipa文件(' Unzip MyApp.ipa') 将结果爆炸有效负载中的应用程序二进制文件复制到与崩溃报告和符号文件相同的文件夹中(类似于“MyApp.app/MyApp”) 从Xcode的管理器中导入或重新符号化崩溃报告
使用atos时,我无法用崩溃报告中的地址和偏移量解析正确的符号信息。当我这样做时,我看到了一些更有意义的东西,它似乎是一个合理的堆栈跟踪。
尽管我已经开发了几年的应用程序,这是我第一次调试二进制文件,我觉得自己像一个完全的NOOB,弄清楚所有的文件在哪里,即*在哪里。应用程序*。dSYM和崩溃日志?为了弄清楚这个问题,我不得不阅读多篇文章。图片胜过千言万语,我希望这篇文章能在将来对其他人有所帮助。
1-首先去itunesconnect下载你的崩溃日志。 注意:在大多数情况下,您可能会得到类似于“提交的报告太少而无法显示报告”的内容。基本上没有足够多的用户向苹果提交崩溃日志报告,在这种情况下,你什么都做不了。
2-现在如果你没有改变你的代码,因为你已经提交了你的二进制文件给苹果,然后启动Xcode的项目,并再次执行Product -> Archive。否则,只需找到您最近提交的二进制文件,并右键单击它。