Firstly, to avoid some confusion: the standard debugging format for Debug configuration for new iOS projects is “DWARF with dSYM file,” but for new OS X projects it's just “DWARF”.
Part of this is historical, but currently the iOS parameter is still “DWARF with dSYM file” just because the Xcode part, which symbolizes the crash logs as they are copied from iOS devices, uses dSYM for this purpose. Therefore, if you plan to test your development assembly by downloading it to the device and then running it and deploying it outside the debugger, then dSYM is convenient for understanding any failures you encounter. If you are working under the debugger, of course, it just stops at the time of the failure, so you will not need to report a failure.
Other than that, I don’t think you are losing anything by switching to DWARF for iOS. And, as SpaceDog noted, it speeds up turnaround times, since the debugger knows how lazy to bind what it needs to DWARF, while the dSymm (dsymutil) authoring tool needs to read and rewrite all of this.
Of course, when you build Release, you want to make and archive debugging information, which is the whole dSYM point, because otherwise the debugging information (contained in the .o files) will be deleted along with other intermediate assembly products, and you will not be able to symbolize failures that occur in your released application.
source share