iOS - detect if app is running from Xcode [duplicate] iOS - detect if app is running from Xcode [duplicate] xcode xcode

iOS - detect if app is running from Xcode [duplicate]


You can check if a debugger is attached (probably, but not definitely, Xcode) using sysctl. Here's how HockeyApp does it:

#include <Foundation/Foundation.h>#include <sys/sysctl.h>/** * Check if the debugger is attached * * Taken from https://github.com/plausiblelabs/plcrashreporter/blob/2dd862ce049e6f43feb355308dfc710f3af54c4d/Source/Crash%20Demo/main.m#L96 * * @return `YES` if the debugger is attached to the current process, `NO` otherwise */- (BOOL)isDebuggerAttached {  static BOOL debuggerIsAttached = NO;  static dispatch_once_t debuggerPredicate;  dispatch_once(&debuggerPredicate, ^{    struct kinfo_proc info;    size_t info_size = sizeof(info);    int name[4];    name[0] = CTL_KERN;    name[1] = KERN_PROC;    name[2] = KERN_PROC_PID;    name[3] = getpid(); // from unistd.h, included by Foundation    if (sysctl(name, 4, &info, &info_size, NULL, 0) == -1) {      NSLog(@"[HockeySDK] ERROR: Checking for a running debugger via sysctl() failed: %s", strerror(errno));      debuggerIsAttached = false;    }    if (!debuggerIsAttached && (info.kp_proc.p_flag & P_TRACED) != 0)      debuggerIsAttached = true;  });  return debuggerIsAttached;}