Ans :
A dSYM file is "debug symbol file". It is generated when "strip debug symbols" setting is enabled in build setting.
When this setting is enabled, symbol names of your objects are removed from the resulting compiled binary (Benefit of this is protect our code from hackers/crackers to reverse engineering your code, amongst other optimisations for binary size, etc.).
dSYM files will likely change each time your app is compiled.
They are useful for re-symbolicating your crash reports. With a stripped binary, you won't be able to read any crash reports without first re-symbolicating them. Without the dSYM the crash report will just show memory addresses of objects and methods. Xcode uses the dSYM to put the symbols back into the crash report and allow you to read it properly.
The created archive contains your app and its dSYM and is stored within Xcode's derived data directory. It is good if we keep dSYM file in every where like build fro QA, UAT, Appstore, Distribution.
For debug mode, if "strip debug symbols" setting is set to "No" then it is okay, but for release, "Yes" is recommended for read crash report.
If you have any comment, question, or recommendation, feel free to post them in the comment section below!