dSYM 文件夹和 mSYM 文件夹有什么区别?

What is the difference between a dSYM folder and an mSYM folder?

我正在开发一个 Xamarin.iOS 应用程序,该应用程序在通过 Ad-hoc 进程部署时崩溃。正如 Apple 的 documented 一样,当应用程序崩溃时,会生成一个 .crash 文件。该文档还指出,作为开发人员,我们必须保留 dSYM 文件夹。

事实证明,就我而言,我(仅?)有一个 mSYM 文件夹。

问题

MyApplicationName.App.dSYM 文件夹和 MyApplicationName.App.mSYM 文件夹有什么区别?

.dSYM

一个 dSYM 文件是一个 "debug symbols file"。它是在项目的构建设置中启用 "Strip Debug Symbols" 设置时生成的。

启用此设置后,对象的符号名称将从生成的编译二进制文件中删除(尝试和防止的许多对策之一是 hackers/crackers 对代码进行逆向工程,以及其他优化二进制大小等)。

dSYM 文件可能会在您的应用程序每次编译时发生变化(由于日期戳,可能每次都会发生变化),并且与项目设置无关。

.mSYM

mSYM 表示 MonoSymbolArchive.It 包含单声道的调试信息。

编辑 csproj 文件中的 iPhone 发布配置以包含 <MonoSymbolArchive>True</MonoSymbolArchive>,这将在 bin/iPhone/Release/.mSYM

中生成符号数据