繁体   English   中英

在构建时分配静态常量

[英]Assign a static constant at build time ios xcode

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

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

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

所以现在我想自动执行。

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

还是有更好的方法来解决这种情况?

谢谢,

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

另一个选择是使用相同的Preprocessor Macros构建设置,并为STAGE设置一个宏。 然后在您的Constant.h中,您可以看到以下内容:

//for stage
#ifdef STAGE
#define SERVICE_URL @"myStageUrl.com"
#else
//for prod
#define SERVICE_URL @"myProdUrl.com"
#endif

在登台目标中,添加一个预处理器宏,例如STAGING_BUILD 不要更改生产目标。

现在,在您的代码中:

#ifdef STAGING_BUILD

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

#else

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

#endif

然后将仅基于选择要构建的目标来编译所需的行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM