1

有没有办法知道程序是否在开发环境中运行?我正在使用 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"];

需要明确的是,不是我想要的,因为我使用真实设备和模拟器进行测试。

4

4 回答 4

2

在构建设置中,您必须根据构建环境设置标志。

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

#ifdef DEBUG
#    define APPID ...    
#else
#    define APPID ...
#endif
于 2012-05-25T15:58:02.270 回答
0

在您的构建设置中,为 App Store 发布版本定义一个新标志。然后使用#ifdef在编译时确定使用哪个appid。

于 2012-05-25T15:51:43.507 回答
0

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

于 2012-05-25T15:55:32.053 回答
0

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

所以,我真的不需要做任何事情,只是在代码中(在我的例子中是 AppDelegate 的didFinishLaunchingWithOptions方法):

[FlurryAnalytics startSession:DEBUG ? @"firstAppId" : @"secondAppId"];
于 2012-05-25T16:21:33.417 回答