有没有办法知道程序是否在开发环境中运行?我正在使用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不是我追求的,因为我使用真实设备和模拟器进行测试。
答案 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"];