How to determine whether code is running in DEBUG / RELEASE build?
Check your project's build settings under 'Apple LLVM - Preprocessing', 'Preprocessor Macros' for debug to ensure that DEBUG
is being set - do this by selecting the project and clicking on the build settings tab. Search for DEBUG
and look to see if indeed DEBUG
is being set.
Pay attention though. You may see DEBUG changed to another variable name such as DEBUG_MODE.
then conditionally code for DEBUG in your source files
#ifdef DEBUG
// Something to log your sensitive data here
#else
//
#endif
How do I detect if I am in release or debug mode?
The simplest, and best long-term solution, is to use BuildConfig.DEBUG
. This is a boolean
value that will be true
for a debug build, false
otherwise:
if (BuildConfig.DEBUG) {
// do something for a debug build
}
There have been reports that this value is not 100% reliable from Eclipse-based builds, though I personally have not encountered a problem, so I cannot say how much of an issue it really is.
If you are using Android Studio, or if you are using Gradle from the command line, you can add your own stuff to BuildConfig
or otherwise tweak the debug
and release
build types to help distinguish these situations at runtime.
The solution from Illegal Argument is based on the value of the android:debuggable
flag in the manifest. If that is how you wish to distinguish a "debug" build from a "release" build, then by definition, that's the best solution. However, bear in mind that going forward, the debuggable
flag is really an independent concept from what Gradle/Android Studio consider a "debug" build to be. Any build type can elect to set the debuggable
flag to whatever value that makes sense for that developer and for that build type.
How can I check if a Flutter application is running in debug?
While this works, using constants kReleaseMode
or kDebugMode
is preferable. See Rémi's answer below for a full explanation, which should probably be the accepted question.
The easiest way is to use assert as it only runs in debug mode.
Here's an example from Flutter's Navigator source code:
assert(() {
if (navigator == null && !nullOk) {
throw new FlutterError(
'Navigator operation requested with a context that does not include a Navigator.\n'
'The context used to push or pop routes from the Navigator must be that of a '
'widget that is a descendant of a Navigator widget.'
);
}
return true;
}());
Note in particular the ()
at the end of the call - assert can only operate on a Boolean, so just passing in a function doesn't work.
How to know at runtime whether a Kony app was built in debug or release mode
After using the Chrome debugger I was able to unearth the solution. There's a constant set during the build process which you can query in order to determine whether the app has been built in debug or release mode.
if(kony.constants.RUNMODE === "debug" || appConfig.isDebug) {
//do domething.
}
else {
//do something else.
}
How to run some code based on release or debug build mode?
From your question, you can use that:
///
/// Indicate if the executable has been generated in debug mode.
///
static public bool IsDebugExecutable
{
get
{
bool isDebug = false;
CheckDebugExecutable(ref isDebug);
return isDebug;
}
}
[Conditional("DEBUG")]
static private void CheckDebugExecutable(ref bool isDebug)
=> isDebug = true;
Of course you can swap name to:
IsReleaseExecutable
return !isDebug;
This approach implies that all code is compiled. Thus any code can be executed depending on this flag as well as any other behavior parameter concerning the user or the program, such as for example the activation or the deactivation of a debugging and tracing engine. For example:
if ( IsDebugExecutable || UserWantDebug ) DoThat();
Else a preprocessor directive like this:
C# if/then directives for debug vs release
#if DEBUG vs. Conditional("DEBUG")
iOS - How to determine if app was built as Debug or Release
You have the following entry in your Info.plist
file:
Configuration
${CONFIGURATION}
which you can access via:
var config = Bundle.main.infoDictionary?["Configuration"]
How can I check whether I am in a debug or release build in a web app?
Look at ConfigurationManager.GetSection() - this should get you most of the way there.. however, I think you're better off just changing between debug and release modes and letting the compiler determine to execute the "#if DEBUG" enclosed statements.
#if DEBUG
/* re-throw the exception... */
#else
/* write something in the event log... */
#endif
the above will work just fine, just make sure you have at least two build configurations (right-click the project you're working on and go to "Properties" there's a section in there on Builds) - make sure that one of those builds has the "define DEBUG" checked and the other does not.
Best way to detect a release build from a debug build? .net
Specifically, like this in C#:
#if (DEBUG)
Debug Stuff
#endif
C# has the following preprocessor directives:
#if
#else
#elif // Else If
#endif
#define
#undef // Undefine
#warning // Causes the preprocessor to fire warning
#error // Causes the preprocessor to fire a fatal error
#line // Lets the preprocessor know where this source line came from
#region // Codefolding
#endregion
Related Topics
How to Mimic the Bottom Sheet from the Maps App
How to Compress/Resize Image on iOS Before Uploading to a Server
Reason: No Suitable Image Found
Setting Custom Uitableviewcells Height
iOS 7 Tableview Like in Settings App on iPad
iPhone Sdk: Differencebetween Loadview and Viewdidload
How to Perform Wireless Debugging in Xcode 9 With iOS 11, Apple Tv 4K, etc
Cordova App Not Displaying Correctly on Iphone X (Simulator)
Cgcontextdrawimage Draws Image Upside Down When Passed Uiimage.Cgimage
Uiviewcontroller Viewdidload Vs. Viewwillappear: What Is the Proper Division of Labor
How to Set Uiview Border Properties from Interface Builder
Uiviewcontroller Returns Invalid Frame
How to Hide the Status Bar in a Swift iOS App
Why Is Wkwebview Not Opening Links With Target="_Blank"
How to Launch Safari and Open Url from iOS App
Set Initial Viewcontroller in Appdelegate - Swift
When and Why Should You Use Nsuserdefaults'S Synchronize() Method