Which makes sense, but the option to switch the scripting backend, in Edit > Project Settings > Player, seems to suggest that this is just for the standalone player used in the “builds”.
I can’t find anything specific about this in the docs, so my question is whether that setting also affects the development builds. To be clear, I’m referring to when I click the “play” button in the Unity Editor:
If it doesn’t, where can I find more info on what that article means by “develop your project”? Is there any way at all to use IL2CPP when “playing” the game in the Editor?
What would the recommended workflow be? Should I select IL2CPP, then build in “debug” mode, and launch the built artifact?
If you build for iOS, the generated project is loaded in Xcode and compiled there. Thus, using a debug configuration allows you to debug the C++ generated inside Xcode. The same applies to XboxOne, where Visual Studio is used to build the generated C++ code, for example.
With “You should use IL2CPP to both develop and ship your Project” they mean if you build a player during development, such as a daily build for your QA, you should use the scripting backend you are going to use for the master build. The reason for this is Mono and IL2CPP often behave differently in some ways, they have different bugs and if you test your project only with Mono and then build your master with IL2CPP, you most likely run into issue that you could have caught during development already.
You’re correct though, we don’t have much documentation for managed code debugging, either with Mono or IL2CPP. We’re working to improve that now, so hopefully the docs for Unity 2018.2 will include this information.
If you are looking specifically to debug the generated C++ code, check out this blog post, which does through an example: