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

Gob*_*Gob 5 debugging xcode release ios swift

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

我读过一些关于将 Swift Compiler - Custom Flags Debug 设置设置为-DDEBUG然后在代码中声明变量的内容,如下所示:

#if DEBUG
  let url = "http://localhost"
#else
  let url = "https://api.example.com"
#endif
Run Code Online (Sandbox Code Playgroud)

但这没有用。运行单元测试时,url 永远不会设置为http://localhost。我在这里错过了什么吗?

Jav*_*ría 3

编辑项目方案...

在此输入图像描述

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

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

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

    }
}
Run Code Online (Sandbox Code Playgroud)