【发布时间】:2013-03-06 19:32:20
【问题描述】:
我的 iOS 项目有五个方案:本地开发、集成、QA、演示和生产。每个方案都使用不同的配置来控制网络轮询频率、API 端点、分析等。
同样,我们有五个相应的目标:本地开发、集成、QA、演示和生产。每个目标都有几个用户定义的构建设置,其中包含 API 密钥、计时数值等。
我们应用程序的Info.plist 文件使用${SOME_ENDPOINT_URL} 等应用程序变量来绘制相应的用户定义的构建设置。
要检索变量,我执行以下操作:
[[[NSBundle mainBundle] infoDictionary] valueForKey:@"Some Endpoint URL"]
这将对应于用户定义的构建设置,如下所示:
"Some Endpoint URL" = ${SOME_ENDPOINT_URL}
我现在正在研究如何适当地配置项目以执行单元和逻辑测试。
要构建测试以确定环境是否配置正确,我不确定最佳做法是什么。
- 为每个环境额外构建五个特定于测试的目标是否正确?
- 或者最好覆盖每个方案的测试组件的“运行操作的参数”设置,并提供类似参数的东西来指定我们正在查看的方案?
- 是否有任何现有的参考资料可以为具有多个环境的 iOS 项目配置单元和逻辑测试?这个项目的复杂性似乎超出了大多数文档的范围。
【问题讨论】:
-
Apple 一直在对整个 Targets/Schemes 系统进行非向后兼容的更改 - 我认为您没有找到文档的原因是 Apple 打算/期望在未来进行更多此类更改,并且希望躲开他们将收到的高炮。 Apple 的某个人似乎特别讨厌 Targets,所以我个人会采用“使用参数”的方法 - Targets 可能会被削弱(再次:()。
-
与其有这么多不同的目标,为什么不只有一个目标,五种配置呢?您将拥有 LocalDev、Integ、QA、Demo、Prod,而不是 Debug 和 Release。然后,您可以创建五个构建相同目标但配置不同的方案。
-
@JacobLukas 你知道你所描述的一个很好的教程吗?我一直避免使用方案,但听起来它们真的很有用。
-
这里是如何在 Xcode 中创建配置的链接:developer.apple.com/library/mac/recipes/…
-
目标和方案是当今的首选方式,而不是使用不同的配置。很多事情都依赖于调试和发布配置——不要走那条路,你的日子不好过。 @Kevin - 为什么需要测试每个目标?我有类似的设置,但仅在开发/内部目标上进行单元测试,因为测试其他目标将是多余的。