Objective c Xcode中的多版本配置

Objective c Xcode中的多版本配置,objective-c,xcode,cocoa,Objective C,Xcode,Cocoa,我正在尝试构建两个独立的应用程序以供发布。其中一个应该比另一个具有更少的特性。我会用宏禁用这些功能。类似于: #ifdef DEMO_VERSION // less code #else // more code #endif 问题是,如何定义DEMO_版本(我通常只会将其放在“其他预处理器宏”下),以便轻松地打开和关闭它?我可以在每次需要编译应用程序时手动定义它,并在编译实际发布版本时将其删除,但我认为可能有更聪明的方法来实现这一点。您可以从Xcode中的“项目信息”视图管理

我正在尝试构建两个独立的应用程序以供发布。其中一个应该比另一个具有更少的特性。我会用宏禁用这些功能。类似于:

#ifdef DEMO_VERSION
    // less code
#else
    // more code
#endif

问题是,如何定义DEMO_版本(我通常只会将其放在“其他预处理器宏”下),以便轻松地打开和关闭它?我可以在每次需要编译应用程序时手动定义它,并在编译实际发布版本时将其删除,但我认为可能有更聪明的方法来实现这一点。

您可以从Xcode中的“项目信息”视图管理生成配置。在这里,您可以复制默认的“Release”配置,然后调整生成设置以为每个配置定义特定的预处理器宏:

  • 从左侧的“项目导航器”窗格中选择您的项目。在显示的“项目/目标”列表中,确保已选择该项目
  • 选择信息选项卡。在配置下,单击+>复制“发布”配置并将其重命名为类似“发布(演示)”的名称
  • 选择构建设置选项卡。展开预处理器宏项以显示每个配置的设置。仅为“发布(演示)”配置添加
    DEMO\u VERSION=1

  • 现在,在编译时,您的预处理器语句将根据当前构建配置有条件地编译。

    WOW!那很酷。我以为只有两种配置。另一件需要提及的事情是:您还可以复制方案并使其使用新配置。这样,就很容易在发布/调试/演示版本之间切换。谢谢你的帮助!