MASTG-KNOW-0063: Debugging Information and Debug Symbols
When an iOS application is compiled, the compiler generates debug symbols for each binary in the app, including the main executable, frameworks, and extensions. These symbols include class names, global variables, and method and function names, which are mapped to specific source files and line numbers. As a tester, you should examine all binaries included with the app and verify that no meaningful debug symbols are present.
Debug builds include these symbols in the compiled binary by default. In contrast, release builds configured with the Debug Information Format set to DWARF with dSYM File
generate separate Debug Symbol files (dSYM), reducing the size of the distributed app.
This approach is similar to split DWARF, common in Linux toolchains. The dSYM files can be uploaded to Apple's symbol servers for crash report symbolication.
As a best practice, only the metadata required for execution should be included in a compiled binary. Debug symbols and other non-essential metadata can expose internal implementation details, such as function names that indicate their purpose. This information is unnecessary for running the app and should be stripped from release builds using appropriate compiler settings.