iOS, "Development Mode" versus "Debug Build"

If you’re making an iOS project, here in Unity3D you can select “Development Build”


Whereas, over in XCode,

Select Product menu and then Edit Scheme. Select Run, and for build configuration, you can choose either Release or Debug. So that’s how you make a “Debug Build” in XCode.

In fact, how are these two related ? When you select Development Build in Unity3D, will that in fact force XCode to use “Debug Build” ?

When fooling with eg. GameCenter, you need to use the Sandboxed mode and (as I understand it!) this means you must use a Debug Build in XCode. (Although these matters change rapidly and fancifully.)

So indeed, in a word does “Development Build” feature in Unity (upper image here) essentially force through to having XCode use a Debug Build (and indeed the sandbox, and so on).

If anyone can clear this up, thanks !

(Note - obviously I could “try this” but there are so many settings, counter-defaults, meta-choices and so on in XCode, it’s difficult to know if you’re getting “normal” behaviour. Currently I seem to be stuck in a mode where, no matter what settings in Unity, resulting XCode projects default to “Debug” Build Configuration (Run) in all cases!)

Development build doesn’t relate to debug/release but provides live linking to profiler. I think the output pane in XCode also provides more context as to the location of a crash - i.e. providing script function and line numbers where the crash occurs in scripts.

There’s some detail here:

If you just debug in Xcode you’ll get a debug build and profiler will default to release. For publishing an iOS drop on say TestFlightApp then I always archive the build and then deploy it from organiser, but I order to do so you need to set the release build profile to use your adhoc deployment profile.