我的iOS项目有五个方案:本地开发,集成,QA,演示和 生产环境 . 每种方案都使用不同的配置来控制网络轮询频率,API endpoints ,分析等内容 .
同样,我们有五个相应的目标:本地开发,集成,QA,演示和 生产环境 . 每个目标都有几个用户定义的构建设置,其中包含API密钥,计时的数值等 .
我们的应用程序的 Info.plist
文件使用应用程序变量(如 ${SOME_ENDPOINT_URL}
)来绘制相应的用户定义的构建设置 .
要检索变量,我会执行以下操作:
[[[NSBundle mainBundle] infoDictionary] valueForKey:@"Some Endpoint URL"]
这将对应于用户定义的构建设置,如下所示:
"Some Endpoint URL" = ${SOME_ENDPOINT_URL}
我现在正在研究如何适当地配置项目以执行单元和逻辑测试 .
要构建测试以确定环境是否正确配置,我不确定最佳实践是什么 .
-
为每个环境构建五个额外的特定于测试的目标是否正确?
-
或者,为每个方案覆盖测试组件的"Run action's arguments"设置是否更好,并提供类似参数的内容来指定我们正在查看的方案?
-
是否有任何现有参考资料为多个环境的iOS项目配置单元和逻辑测试?该项目的复杂性似乎超出了大多数文档的范围 .
1 回答
以下是我的工作 .
的Info.plist
创建主Info.plist文件
为每个方案编写一个运行脚本(Shell脚本),通过修改主Info.plist中的设置来生成特定于环境的Info.plist(使用PlistBuddy -c)
将运行脚本添加到Build Phases(上面"Compile Sources")
.h文件
在代码中导入config.h
为每个方案使用预处理器宏来选择目标.h文件 .