NSString* GetXcodePath() { return [[NSWorkspace sharedWorkspace]absolutePathForAppBundleWithIdentifier:kXCodeBundleId]; } extern "C" EXPORTDLL void LaunchXCode() { NSString* curApp = GetXcodePath(); [[NSWorkspace sharedWorkspace] launchApplication:curApp]; NSArray *selectedApps = [NSRunningApplication runningApplicationsWithBundleIdentifier:kXCodeBundleId]; for (int i = 0; i < [selectedApps count]; i++) { NSRunningApplication *app = [selectedApps objectAtIndex:i]; int count = 0; NSLog(@"Checking %@\n", app); while (![app isFinishedLaunching] && count++ < 300) [[NSRunLoop currentRunLoop] runUntilDate: [NSDate dateWithTimeIntervalSinceNow: 1.0f]]; } } NSString* MakeNSString (const std::string& string) { return MakeNSString(string.c_str()); } NSString* MakeNSString (const char* string) { NSString* ret = string ? [NSString stringWithUTF8String:string] : nil; return ret ? ret : @""; }