如何检测app是否是从xcode启动的?

时间:2017-01-20 15:04:23

标签: ios objective-c xcode macos

如何检测我的应用程序是在编译后从xcode启动还是从itunes下载的软件包中启动的?

下面的代码似乎不起作用,因为当我从xcode构建并运行它时,else块总是被执行。

#if (TARGET_OS_SIMULATOR)

#else
    //Xcode did not launch this app
#endif

2 个答案:

答案 0 :(得分:4)

我没有看到WIDE用于此,但可以通过查看环境变量来实现。通过xcode

启动时为OS_ACTIVITY_DT_MODE" = YES

实施例

NSDictionary *environment = [[NSProcessInfo processInfo] environment];
UITextView *v = self.view.subviews.firstObject;

if([environment[@"OS_ACTIVITY_DT_MODE"] boolValue]) {
    v.text = @"xcode attached";
}
else {
    v.text = @"not xcode";
}

注意:

env中的参数是私有的,可能会更改,但env可能始终是检查此内容的好地方。

答案 1 :(得分:2)

我认为这是我在许多应用中使用它的最佳解决方案。 首先在项目中设置DEBUG变量' Build Setting'在图片中显示的部分。 enter image description here

然后以这种方式在代码中使用它。在构建应用程序以进行发布或分发时,#ifdef分支中的代码甚至无法编译。

#ifdef DEBUG
    // in debug mode when running off of XCode in debug mode
#else
    // running off of XCode in release mode or downloaded from App Store
#endif