【发布时间】:2019-06-09 05:04:29
【问题描述】:
我有一些动态值需要根据我在 Xcode 中执行的构建类型进行更改。
我创建了 2 个方案 DEV 和 PROD 并在每个方案中设置环境变量
然后我在代码中使用它们,如下所示
var serviceDomain: String {
let envVar = ProcessInfo.processInfo.environment
guard let value = envVar["APP_SERVICE_DOMAIN"] else { fatalError("Missing APP_SERVICE_DOMAIN enviroment variable") }
return value
}
这是处理这个问题的正确方法吗?
一旦应用程序被编译,这些值现在是否应该与它捆绑在一起?
我有一个问题,一旦我停止了我的模拟器,如果我尝试打开一个以这种方式构建的应用程序,它会崩溃并且我怀疑环境变量不再存在。
简而言之,我想要一个使用一组变量的开发版本和一个使用另一组变量的发布/生产版本。
【问题讨论】:
-
关于环境变量范围,你是对的:它们是由 Xcode 定义的,因此在 IDE 之外运行应用程序时不会出现。如果您想遵循这种方法,您需要在代码(或外部文件)中定义默认值。
标签: ios swift xcode build environment-variables