6

我的 iOS 项目有五个方案:Local Development、Integration、QA、Demo 和 Production。每个方案都使用不同的配置来控制网络轮询频率、API 端点、分析等。

同样,我们有五个对应的目标:本地开发、集成、QA、演示和生产。每个目标都有几个用户定义的构建设置,其中包含 API 密钥、计时数值等。

我们的应用程序Info.plist文件使用应用程序变量,例如${SOME_ENDPOINT_URL}在相应的用户定义的构建设置中绘制。

要检索变量,我执行以下操作:

[[[NSBundle mainBundle] infoDictionary] valueForKey:@"Some Endpoint URL"]

这将对应于用户定义的构建设置,如下所示:

"Some Endpoint URL" = ${SOME_ENDPOINT_URL}

我现在正在研究如何适当地配置项目以执行单元和逻辑测试。

要构建测试以确定环境是否配置正确,我不确定最佳实践是什么。

  • 为每个环境构建五个额外的特定于测试的目标是否正确?
  • 还是更好地覆盖每个方案的测试组件的“运行操作的参数”设置,并提供类似参数的东西来指定我们正在查看的方案?
  • 是否有任何现有的参考资料可以为具有多个环境的 iOS 项目配置单元和逻辑测试?这个项目的复杂性似乎超出了大多数文档的范围。
4

1 回答 1

1

以下是我所做的。

信息列表

  • 创建主 Info.plist 文件
  • 为每个方案编写一个运行脚本(Shell Script),通过修改主Info.plist中的设置来生成环境特定的Info.plist(使用PlistBuddy -c)
  • 将运行脚本添加到构建阶段(在“编译源”上方)

.h 文件

  • 在 .h 文件中定义配置设置(例如 config.h)

    #if defined (CONFIG_FILE) 
    #import CONFIG_FILE
    #endif
    
  • 在您的代码中导入 config.h

  • 对每个方案使用预处理器宏来选择目标 .h 文件。

    -DCONFIG_FILE=local-env-config.h
    
于 2013-12-13T08:49:44.430 回答