The differences between the Xcode debug and release builds are similar to the differences you'll find on any other system, though the Xcode interface might not present them as obviously. Basically, a debug build preserves all kinds of information that was developed during compilation but is no longer necessary at runtime. The presence or absence of this information (e.g. symbol tables and mappings which provide the original name of each source code variable and the source code line number corresponding to each instruction), becomes increasingly obvious as you use gdb and other debugging tools.
We normally would never want to release a debug version (in the iOS case, of course, it would never be accepted) because the binary is usually much larger and the performance will probably be compromised as well. For example, a typical debug build will have many perfomance optimizations turned off because these can make debugging more difficult. It's also common to enable "assert" statements in a debug version. These will bring the program down rather than giving the user any options or attempting recovery.
For more info specific to Xcode, see [Build Configurations|http://developer.apple.com/library/ios/documentation/DeveloperTo ols/Conceptual/XcodeBuildSystem/400-Build
Configurations/build_configs.html#//appleref/doc/uid/TP40002692-SW7] in the +Xcode Build System Guide+. To get into lower level details, refer to the gcc docs, maybe starting with [3.9 Options for Debugging Your Program or GCC|http://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html]. You might also want to take a look at your Target Build Options for the Debug configuration (Project->Set Active SDK->Use Base SDK and Project->Edit Active Target->Build). There's a one-to-one mapping between many of these settings and the gcc options.
\- Ray
p.s.: Didn't mean to repeat Xnav's points. As usual, I was still editing long after he posted! To clarify one difference: Selecting the Edit Active Target menu item gets you to the same place as double clicking on the icon for the active target in the Targets group of the Groups & Files tree. - R
Message was edited by: RayNewbie