了解应用程序是否在测试环境中运行

时间:2012-05-25 15:49:09

标签: objective-c ios

有没有办法知道程序是否在开发环境中运行?我正在使用Flurry Analytics并希望将其传递给不同的应用ID,因此在开发过程中我的测试数据不会变脏。

我想要的是这样的:

Boolean isDevEnv = .... (is this a test in the simulator or device,
                         OR is it a real user that downloaded the 
                         app through the app store?)
if (isDevEnv)
  [FlurryAnalytics startSession:@"firstAppId"];
else
  [FlurryAnalytics startSession:@"secondAppId"];

要清楚,this不是我追求的,因为我使用真实设备和模拟器进行测试。

4 个答案:

答案 0 :(得分:2)

在构建设置中,您必须设置标志,具体取决于构建环境。

然后,使用#ifdef和#define设置appid。

#ifdef DEBUG
#    define APPID ...    
#else
#    define APPID ...
#endif

答案 1 :(得分:0)

在构建设置中,为App Store发行版定义新标记。然后使用#ifdef在编译时确定要使用哪个appid。

答案 2 :(得分:0)

如果您不想使用DEBUG标志和DEBUG环境,请创建新的构建配置(重复版本配置),并在构建设置预处理器宏中添加FlurryAnalytics标志。在您的代码中检查if(FlurryAnalytics)。在XCode中创建一个使用此新版本构建配置创建ipa的新方案。

答案 3 :(得分:0)

嗯,似乎默认情况下由Xode完成,在项目的构建设置中,Apple LLVM compiler 3.1 - Preprocessing下(这是在Xcode 4.3.2中,供将来参考),一个名为DEBUG的设置是填充了值1

所以,我没有真正做任何事情,只是在代码中(在我的案例中,在AppDelegate的didFinishLaunchingWithOptions方法中):

[FlurryAnalytics startSession:DEBUG ? @"firstAppId" : @"secondAppId"];