XCode supports those 2 values for this Build Setting:
XCode支持此Build设置的这两个值:
Build Settings > Build Options > Debug Information Format.
构建设置>构建选项>调试信息格式。
Could anybody explain the differences?
有谁可以解释这些差异?
3 个解决方案
#1
29
The difference is that in the case of DWARF with dSYM file your Archive app.xcarchive (for adHoc distribution) contains also dSYM file needed for reverse symbolication of your code in crash reports. In general, .xcarchive contains
不同之处在于,对于带有dSYM文件的DWARF,Archive app.xcarchive(用于adHoc分发)还包含在崩溃报告中反向符号化代码所需的dSYM文件。通常,.xcarchive包含
dSyms
Products
info.plist
So if you need it for external analysis of crash reports under archiving you app for distribution you should use DWARF with dSYM file.
因此,如果您需要在归档应用程序以进行分发时对崩溃报告进行外部分析,则应将DWARF与dSYM文件一起使用。
#2
4
As always understanding the abbreviations help!
一如既往地了解缩写帮助!
DWARF is a widely used, standardized debugging data format:
DWARF是一种广泛使用的标准化调试数据格式:
DWARF was originally designed along with Executable and Linkable Format (ELF), although it is independent of object file formats. The name is a medieval fantasy complement to "ELF" that has no official meaning. Only that both (dwarf and elf) are mythological creatures
DWARF最初与可执行和可链接格式(ELF)一起设计,尽管它独立于目标文件格式。这个名字是对“ELF”的中世纪幻想补充,没有官方意义。只有(矮人和精灵)都是神话中的生物
Debug Symbol (dSYM):
调试符号(dSYM):
By default, debug builds of an application store the debug symbols inside the compiled binary while release builds of an application store the debug symbols in a companion dSYM file to reduce the binary size.
默认情况下,应用程序的调试版本将调试符号存储在已编译的二进制文件中,而应用程序的发布版本将调试符号存储在随附的dSYM文件中以减小二进制文件大小。
The Debug Symbol file and application binary are tied together on a per-build-basis by the build UUID. A new UUID is generated for each build of your application and uniquely identifies that build. Even if a functionally-identical executable is rebuilt from the same source code, with the same compiler settings, it will have a different build UUID.
调试符号文件和应用程序二进制文件通过构建UUID在每个构建的基础上绑定在一起。为应用程序的每个构建生成一个新的UUID,并唯一标识该构建。即使从相同的源代码重建功能相同的可执行文件,使用相同的编译器设置,它也将具有不同的构建UUID。
For example, if you have a library libfoo.dylib, the debug symbol file would be libfoo.dylib.dSYM.
例如,如果您有一个库libfoo.dylib,则调试符号文件将是libfoo.dylib.dSYM。
From here
从这里
So long story short
长话短说
-
DWARF is just a debug file
DWARF只是一个调试文件
-
DWARF with dSYM File is a debug file along with symbolification file
带有dSYM文件的DWARF是一个调试文件以及符号化文件
#3
0
DWARF (debugging with attributed record formats) is a debugging file format used by many compilers and debuggers to support source-level debugging. It is the format of debugging information within an object file. The DWARF description of a program is a tree structure where each node can have children or siblings. The nodes might represent types, variables, or functions.
DWARF(使用属性记录格式进行调试)是一种调试文件格式,许多编译器和调试器使用它来支持源级调试。它是目标文件中调试信息的格式。程序的DWARF描述是树结构,其中每个节点可以有子节点或兄弟节点。节点可能表示类型,变量或函数。
source: https://www.ibm.com/developerworks/aix/library/au-dwarf-debug-format/index.html
来源:https://www.ibm.com/developerworks/aix/library/au-dwarf-debug-format/index.html
DWARF with dSYM File stores the debug symbols for your app
带有dSYM文件的DWARF存储应用程序的调试符号
Services like crashlytics use it to replace the symbols in the crash logs with the appropriate methods names so it will be readable and will make sense.
像crashlytics这样的服务使用它来用相应的方法名称替换崩溃日志中的符号,这样它就是可读的并且有意义。
source : What's the dSYM and how to use it? (iOS SDK)
来源:什么是dSYM以及如何使用它? (iOS SDK)
#1
29
The difference is that in the case of DWARF with dSYM file your Archive app.xcarchive (for adHoc distribution) contains also dSYM file needed for reverse symbolication of your code in crash reports. In general, .xcarchive contains
不同之处在于,对于带有dSYM文件的DWARF,Archive app.xcarchive(用于adHoc分发)还包含在崩溃报告中反向符号化代码所需的dSYM文件。通常,.xcarchive包含
dSyms
Products
info.plist
So if you need it for external analysis of crash reports under archiving you app for distribution you should use DWARF with dSYM file.
因此,如果您需要在归档应用程序以进行分发时对崩溃报告进行外部分析,则应将DWARF与dSYM文件一起使用。
#2
4
As always understanding the abbreviations help!
一如既往地了解缩写帮助!
DWARF is a widely used, standardized debugging data format:
DWARF是一种广泛使用的标准化调试数据格式:
DWARF was originally designed along with Executable and Linkable Format (ELF), although it is independent of object file formats. The name is a medieval fantasy complement to "ELF" that has no official meaning. Only that both (dwarf and elf) are mythological creatures
DWARF最初与可执行和可链接格式(ELF)一起设计,尽管它独立于目标文件格式。这个名字是对“ELF”的中世纪幻想补充,没有官方意义。只有(矮人和精灵)都是神话中的生物
Debug Symbol (dSYM):
调试符号(dSYM):
By default, debug builds of an application store the debug symbols inside the compiled binary while release builds of an application store the debug symbols in a companion dSYM file to reduce the binary size.
默认情况下,应用程序的调试版本将调试符号存储在已编译的二进制文件中,而应用程序的发布版本将调试符号存储在随附的dSYM文件中以减小二进制文件大小。
The Debug Symbol file and application binary are tied together on a per-build-basis by the build UUID. A new UUID is generated for each build of your application and uniquely identifies that build. Even if a functionally-identical executable is rebuilt from the same source code, with the same compiler settings, it will have a different build UUID.
调试符号文件和应用程序二进制文件通过构建UUID在每个构建的基础上绑定在一起。为应用程序的每个构建生成一个新的UUID,并唯一标识该构建。即使从相同的源代码重建功能相同的可执行文件,使用相同的编译器设置,它也将具有不同的构建UUID。
For example, if you have a library libfoo.dylib, the debug symbol file would be libfoo.dylib.dSYM.
例如,如果您有一个库libfoo.dylib,则调试符号文件将是libfoo.dylib.dSYM。
From here
从这里
So long story short
长话短说
-
DWARF is just a debug file
DWARF只是一个调试文件
-
DWARF with dSYM File is a debug file along with symbolification file
带有dSYM文件的DWARF是一个调试文件以及符号化文件
#3
0
DWARF (debugging with attributed record formats) is a debugging file format used by many compilers and debuggers to support source-level debugging. It is the format of debugging information within an object file. The DWARF description of a program is a tree structure where each node can have children or siblings. The nodes might represent types, variables, or functions.
DWARF(使用属性记录格式进行调试)是一种调试文件格式,许多编译器和调试器使用它来支持源级调试。它是目标文件中调试信息的格式。程序的DWARF描述是树结构,其中每个节点可以有子节点或兄弟节点。节点可能表示类型,变量或函数。
source: https://www.ibm.com/developerworks/aix/library/au-dwarf-debug-format/index.html
来源:https://www.ibm.com/developerworks/aix/library/au-dwarf-debug-format/index.html
DWARF with dSYM File stores the debug symbols for your app
带有dSYM文件的DWARF存储应用程序的调试符号
Services like crashlytics use it to replace the symbols in the crash logs with the appropriate methods names so it will be readable and will make sense.
像crashlytics这样的服务使用它来用相应的方法名称替换崩溃日志中的符号,这样它就是可读的并且有意义。
source : What's the dSYM and how to use it? (iOS SDK)
来源:什么是dSYM以及如何使用它? (iOS SDK)