如何符号化来自 Xamarin Forms iOS 项目的 crash/error 日志?

How to symbolicate crash/error logs from a Xamarin Forms iOS project?

我需要符号化一些崩溃日志,为此我读到我需要 .app 和 .dSYM 文件以及 .crash 文件。

我在任何地方都找不到 .app 文件。我有 .app.dSYM 文件和 .crash 文件,但找不到 .app 文件。

我还可以在 Xcode Organizer 上看到我的错误日志。但是我的应用程序中的行没有被符号化。如果我点击箭头打开一个项目,我不知道要打开哪个文件。

谢谢

构建 iOS 项目时,bin/iPhone/Release 目录中应该有 .app 文件。或者,如果您有 .ipa 文件,您可以从中提取 .app。您可以将文件重命名为 .zip 并提取。 .app 将位于 Payload 文件夹中。在 Windows 上,它可能有点令人困惑,因为图标可能看起来像文件夹或目录。检查文件扩展名。在 Mac 上,它应该可以识别 .app,并且可能根本不显示扩展名。相反,它看起来像这样:

Important: You need to use the same .app file that generated the crash report. This means you would have to use the .app from the package you installed on the device that generated the crash report. Hopefully, you archived that or saved it somewhere. Simply rebuilding the project to get a new .app will not match up with the .crash file during symbolication and will not work. If you don't have access to that, you will need to publish again and this time keep the .app around for the next time you get a .crash to analyze.

要手动符号化,我有一篇博客 post 介绍如何执行此操作 here。总而言之,步骤如下:

创建别名

打开终端并运行您的 Xcode 版本的这些命令之一:

Xcode 7.X
alias symbolicate="/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash -v"  

这只是通过将 symbolicatecrash 工具别名为 symbolicate 命令使它的使用更容易,这样我们就不必导航到该目录以 运行 命令。

更新开发者目录

运行 这个命令:

export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer"

象征

再次打开终端并cd 到您在上述步骤中放置文件的目录。 运行 我们之前使用您的 .crash 和 .app 文件作为参数的 symbolicate 命令别名如下:

symbolicate -o "symbolicatedCrash.txt" "MyAppName 2-12-14, 9-44 PM.crash" "MyAppName.app"

这将符号化崩溃文件并将结果输出到名为 "symbolicatedCrash.txt" 的新文件中。确保更正我示例中的文件名以匹配您的文件名。