Xcode:Swift – 如何根据执行环境声明具有不同值的变量/常量?

我试图弄清楚如何处理不同环境的变量/常量,例如开发(或调试)和发布。 例如,在执行unit testing时,Web服务的url应指向localhost,但在最终产品中,它应指向public api host。

我已经阅读了一些关于将Swift编译器 – 自定义标志调试设置设置为-DDEBUG然后在代码中声明变量的内容,如下所示:

 #if DEBUG let url = "http://localhost" #else let url = "https://api.example.com" #endif 

但那没用。 运行unit testing时,url永远不会设置为http://localhost 。 我在这里错过了什么吗?

编辑项目方案……

在此处输入图像描述

定义您的环境变量: 在此处输入图像描述

最后检查是否为您正在处理的模式定义:

 var baseURL:String{ get{ if let _ = ProcessInfo().environment["LOCAL_MOCK_SERVER"]{ return "http:/localhost:3000" } else{ return "https://api.fixer.io" } } }