预处理器设置混乱

时间:2012-08-06 15:37:16

标签: ios preprocessor-directive

当我处于DEV模式或使用预处理器设置处于RELEASE模式时,我正在尝试进行简单的测试。我的设置如下:

preprocessor settings

我还有一个我在App-prefix.pch文件中包含的constant.h文件。

该文件的内容如下:

#ifndef myapp_Constants_h
#define myapp_Constants_h




    #pragma mark - Instances
    #ifdef DEBUG
    #define WEB_SERVICE_BASE_URL @"http://local.someurl.com/"
    #define LOGIN_PATH @"app_dev.php/user/login/"
    #define REGISTER_PATH @"app_dev.php/user/register/"
    #endif


    #ifdef RELEASE
    #define WEB_SERVICE_BASE_URL @"http://www.someurl.com/"
    #define LOGIN_PATH @"user/login/"
    #define REGISTER_PATH @"user/register/"
    #endif

#endif

当我在插入Mac的iphone上运行应用程序时,即使我应该获得RELEASE设置,我似乎总是得到DEBUG模式设置。

为什么?

2 个答案:

答案 0 :(得分:1)

Xcode的默认配置是在Debug中运行,甚至在设备上运行。如果您想在发布中运行您的应用,您可以:

  • 使用“配置文件”(Command-I)或“存档”(然后安装生成的应用程序)。
  • 选择“产品 - >编辑方案”修改您的方案。 (或使用Command-Option-R。)单击“运行”方案,并将“构建配置”更改为“发布”。 (它位于“信息”面板中。)

如果要频繁来回切换,可以制作另一个方案(在“管理方案”中)并修改它以使用发布版本配置。然后,您可以使用Xcode左上角的方案选择器轻松地在它们之间切换。

答案 1 :(得分:0)

在我看来,当你运行附加到Xcode时,总是会定义DEBUG。

一种解决方案是

#ifdef RELEASE
    // release constants

#else
    // debug constants

#endif

这样,您的RELEASE定义将覆盖DEBUG。

编辑:在任何情况下,如果未设置DEBUG和RELEASE,您仍然可以使用可行的环境。它可能会发生。