象征 iPhone 应用程序崩溃

发布于 2024-08-29 23:10:27 字数 668 浏览 3 评论 0原文

我无法设法使我的代码符号化......我阅读了“下面”的部分:

给定崩溃报告,匹配的 二进制文件及其 .dSYM 文件, 符号化相对容易。这 Xcode Organizer 窗口有一个选项卡 目前的崩溃报告 选定的设备。您可以查看 外部收到的崩溃报告 这个选项卡 - 只需将它们放在 适当的目录。这是 与 Mac OS X 目录相同 在第一节中描述。它 无论您拥有哪种设备都没关系 束缚,但其中的目录 您放置的崩溃报告必须是 系留目录和 所选设备。

没有必要放置 任何二进制和 .dSYM 文件 特定位置。 Xcode 使用 Spotlight 和 UUID 来定位 正确的文件。有必要, 不过,这两个文件位于同一个文件中 目录并且该目录是 由 Spotlight 索引的一个。 您的主目录中的任何位置都应该 没事。

但这对我不起作用...这就是我所做的:

  • 我打开了xcode Organizer,我的iPhone设备上有崩溃日志
  • 应用程序和dsym文件位于我桌面上的xcode项目中

所有其余的应该是自动的, 正确的 ?但崩溃日志尚未符号化......

欢迎任何评论。

干杯。

戈蒂耶。

I can't manage to make my code symbolicated ... I read the part "below" :

Given a crash report, the matching
binary, and its .dSYM file,
symbolication is relatively easy. The
Xcode Organizer window has a tab for
crash reports of the currently
selected device. You can view
externally received crash reports in
this tab - just place them in the
appropriate directory. This is the
same as the Mac OS X directory
described in the first section. It
doesn't matter which device you have
tethered, but the directory in which
you place the crash report must be the
directory for the tethered and
selected device.

It is not necessary to place the
binary and .dSYM file in any
particular location. Xcode uses
Spotlight and the UUID to locate the
correct files. It is necessary,
though, that both files be in the same
directory and that this directory is
one that is indexed by Spotlight.
Anywhere in your home directory should
be fine.

But it doesn't work for me ... here is what I did :

  • I opened xcode organizer and I had my iphone device with crash logs
  • App and dsym files are in my xcode project which is on my desktop

All the rest should be automatic, right ? but crash logs aren't symbolicated yet ...

Any comments welcome.

Cheers.

Gotye.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

望她远 2024-09-05 23:10:27

我已经为此苦苦挣扎了好几天,终于解决了。我无法从安装到手机上的任何存档应用程序中获取符号日志。对我来说,这是构建设置的问题,尽管我确实注意到在我遵循这些步骤之后它也能够符号化一些旧版本的日志。 YMMV 可能会因旧版本的崩溃日志而异。在 iOS 4.3.1 上的 Xcode 4.0.1 中执行这些步骤后,我能够获取符号化日志。

在 Xcode 项目导航器中,单击您的项目,然后单击构建设置。当您归档应用程序时,Xcode 默认使用 Release 配置。您只想为发布配置设置以下值,因此您必须展开所有尚未展开的设置,以允许您在每个配置的基础上进行设置。

确保为发布配置设置这些值:

  • 生成调试符号:是
  • 调试信息格式:带有 dSYM 文件的 DWARF 文件
  • 部署后处理:是
  • 剥离链接产品:是
  • 使用单独的剥离:是
  • 在复制期间剥离调试符号:否
  • 剥离样式:所有符号

一次这些已设置,存档并重新安装您的应用程序。从生成的存档生成的新崩溃报告应正确符号化。对我来说,许多旧的崩溃报告在执行这些步骤后也能正确表示,尽管我不确定如果构建非常不同,结果会有多准确。

作为参考,我在研究此页面后弄清楚了所有这些: https://web.archive.org/web/20110727155234/http://developer.apple.com/tools/xcode/symbolizingcrashdumps.html

我还发现了这个页面,这是如果您想弄清楚特定的构建设置的作用,这很方便:

I've been struggling with this for several days and finally figured it out. I wasn't able to get symbolicated logs from any Archived application I installed to my phone. For me, it was a problem with the build settings, although I did notice that it was able to symbolicate logs from some older builds as well after I followed these steps. YMMV may vary with crash logs from older builds. I was able to get symbolicated logs after following these steps in Xcode 4.0.1 on iOS 4.3.1.

In the Xcode Project navigator, click on your project and then click Build Settings. When you archive your application, Xcode uses the Release configuration by default. You'll want to set the following values for the Release configuration only, so you'll have to expand any settings that aren't already expanded to allow you to set it on a per-configuration basis.

Ensure these values are set for the Release configuration:

  • Generate Debug Symbols: Yes
  • Debug Information Format: DWARF with dSYM File
  • Deployment Postprocessing: Yes
  • Strip Linked Product: Yes
  • Use Separate Strip: Yes
  • Strip Debug Symbols During Copy: No
  • Strip Style: All Symbols

Once those are set, Archive and reinstall your application. New crash reports generated from the resulting archive should be symbolicated correctly. For me, many old crash reports also symbolicated correctly after following these steps although I'm not sure how accurate the results would be if the builds were very different.

For reference, I figured all this out after studying this page: https://web.archive.org/web/20110727155234/http://developer.apple.com/tools/xcode/symbolizingcrashdumps.html

I also found this page, which is handy if you're trying to figure out what a particular build setting does: https://developer.apple.com/library/archive/documentation/DeveloperTools/Reference/XcodeBuildSettingRef/1-Build_Setting_Reference/build_setting_ref.html

柳絮泡泡 2024-09-05 23:10:27

为了符号化您的崩溃报告,请尝试以下方法:

(a) 找到符号 (/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources /symbolicatecrash)

(b) 打开终端并拖动此文件(以便正确复制路径)

(c) 运行 /Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A 等命令/Resources/symbolicatorcrash .crash .app (提及崩溃报告和应用程序文件的完整路径)

(d) 将显示符号化崩溃报告

In order to symbolicate your crash report, try this approach:

(a) Locate the symbolicator (/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/symbolicatecrash)

(b) Open Terminal and drag this file (so that the path gets copied correctly)

(c) Run a command like /Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/symbolicatorcrash .crash .app (mention the whole path of the crash report and the app file)

(d) Symbolicated crash report will show up

空名 2024-09-05 23:10:27

分析来自苹果的崩溃报告的步骤:

  1. 将推送到应用商店的版本 .app 文件、发布时创建的 .dSYM 文件以及从 APPLE 收到的崩溃报告复制到一个文件夹中。

  2. 打开终端应用程序并转到上面创建的文件夹(使用 CD 命令)

  3. atos -arch armv7 -o '(您的 .应用程序文件名此处)'/'(.dSYM 文件名此处)'(崩溃报告中发生崩溃的内存位置)。根据报告,内存位置应该是应用程序崩溃的位置。

例如:atos -arch armv7 -o 'app name.app'/'app name' 0x0003b508

这将显示导致崩溃的确切行、方法名称。

谢谢

Steps to analyze crash report from apple:

  1. Copy the release .app file which was pushed to the appstore, the .dSYM file that was created at the time of release and the crash report receive from APPLE into a FOLDER.

  2. OPEN terminal application and go to the folder created above (using CD command)

  3. atos -arch armv7 -o '(your .app file name here)'/'(.dSYM filename here)' (memory location in the crash report where the crash occured). The memory location should be the one at which the app crashed as per the report.

Ex : atos -arch armv7 -o 'app name.app'/'app name' 0x0003b508

This would show you the exact line, method name which resulted in crash.

Thanks

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文