0
我想根据当前的构建配置(dev,production)使用全局变量来定义我的应用程序的API基本路径。 这些都是当前的方法:在Swift中使用条件编译来定义全局变量
1)
struct ApiSettings {
static let API_DEV_BASEPATH = "http://dev.myapp.com"
static let API_PRODUCTION_BASEPATH = "http://prod.myapp.com"
// Return the basepath for the current app runtime mode
static var API_BASEPATH:String {
var bPath: String!
#if DEBUG
bPath = API_DEV_BASEPATH
#else
bPath = API_PRODUCTION_BASEPATH
#endif
return bPath
}
}
2) (这里我定义了一个临时环境太)
#if DEBUG
let API_BASEPATH = "http://dev.app.com"
#elseif STAGING
let API_BASEPATH = "http://staging.app.com"
#elseif RELEASE
let API_BASEPATH = "http://production.app.com"
#endif
但是当我尝试在我的应用程序使用API_BASEPATH的编译器抱怨“未解析的标识符”
我不确定哪个最优雅的解决方案被采用。 PS。我正在使用Swift3
这将是一个更好的设计,以提取所有环境相关的变量到'plist'文件。 – Alexander
有什么方法可以在.plist文件中定义相同的变量,并根据构建配置(调试,分段,发布)提取它,而无需使用代码?我正在考虑扩展由.plist提供的常量中提供的代码。 – Claus
是的,你为每个构建配置一个plist,并且更改哪个包含在每个包中,哪一个包含 – Alexander