0

我应该为我们的测试团队使用 Prod_URL 和 Stage_URL 构建和归档我的应用程序。现在我正在使用一个Constant.h文件,并且有一个类似的代码;

//for stage
#define SERVICE_URL @"myStageUrl.com"
/*
//for prod
#define SERVICE_URL @"myProdUrl.com"
*/

而且我总是更改注释行,以便能够构建我的应用程序的两个不同版本。

所以现在我想自动完成。

我创建了两个目标,例如 MyAppStage 和 MyAppProd。而且我认为我应该为此编写一个运行脚本以在这两#define行之间切换。但我不知道如何编写脚本。

或者对于这种情况有什么更好的方法吗?

谢谢,

4

2 回答 2

4

如果您有两个单独的目标,您可以将这些定义放置在其自身的项目属性中。为此,您需要转到您的项目属性。单击要编辑的目标,单击“构建设置”选项卡并搜索预处理器宏。在那里定义你想要的任何东西,它将对该目标中的每个类都可见。

另一种选择是使用相同的预处理器宏构建设置并为STAGE. 然后在你的 Constant.h 中你可以有类似的东西:

//for stage
#ifdef STAGE
#define SERVICE_URL @"myStageUrl.com"
#else
//for prod
#define SERVICE_URL @"myProdUrl.com"
#endif
于 2014-01-28T14:33:48.797 回答
2

在你的暂存目标中,添加一个预处理器宏,类似的东西STAGING_BUILD就可以了。不要改变生产目标。

现在,在您的代码中:

#ifdef STAGING_BUILD

//for stage
#define SERVICE_URL @"myStageUrl.com"

#else

//for prod
#define SERVICE_URL @"myProdUrl.com"

#endif

然后将根据选择要构建的目标编译所需的行。

于 2014-01-28T14:34:28.073 回答