When developing iOS apps using XCode, you can use NSLog calls to write information to the console for debugging. In Xamarin.iOS, the same can be done with Console.WriteLine.
When running a release build of an app, without the debugger attached, these calls serve no purpose. So I've thought of excluding them with pre-processor directives:
Console output is not removed in iOS release builds.
FYI: Xcode does not "automatically" remove
Your options are many... including:
DEBUG preprocessor as you show in your question.
Any calls to Debug.* will be removed by the compiler due to the [Conditional("DEBUG")] attribute being applied.
Create your own "Logger" class as a wrapper to the
stdout writers and
Fody and re-weave the assemblies to remove/NOP/redirect the
Ref: Xamarin's NSLogWriter Helper Class