我应该为我们的测试团队使用Prod_URL和Stage_URL构建和归档我的应用程序。
现在我正在使用Constant.h
文件,并且有一个代码,如;
//for stage
#define SERVICE_URL @"myStageUrl.com"
/*
//for prod
#define SERVICE_URL @"myProdUrl.com"
*/
我总是更改注释行,以便能够构建我的应用程序的两个不同版本。
所以现在我想自动完成。
我创建了两个目标,如MyAppStage和MyAppProd。我想我应该为此编写一个Run Script来切换这两行#define
行。但我不知道怎么写剧本。
还是有更好的方法来处理这种情况吗?
THX,
答案 0 :(得分:4)
如果您有两个单独的目标,则可以将这些定义放在项目属性中。为此,您可以转到项目属性。单击要编辑的目标,单击“构建设置”选项卡并搜索预处理器宏。在那里定义你想要的任何东西,它对于那个目标中的每个类都是可见的。
另一种选择是使用相同的预处理器宏构建设置并为STAGE
设置宏。然后在你的Constant.h中你可以得到类似的东西:
//for stage
#ifdef STAGE
#define SERVICE_URL @"myStageUrl.com"
#else
//for prod
#define SERVICE_URL @"myProdUrl.com"
#endif
答案 1 :(得分:2)
在您的暂存目标中,添加预处理器宏,例如STAGING_BUILD
。不要改变生产目标。
现在,在您的代码中:
#ifdef STAGING_BUILD
//for stage
#define SERVICE_URL @"myStageUrl.com"
#else
//for prod
#define SERVICE_URL @"myProdUrl.com"
#endif
然后只根据选择要构建的目标编译所需的行。