我有一些动态值需要根据我在 Xcode 中进行的构建类型进行更改。
我创建了2个方案DEV
and 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
}
这是处理这个问题的正确方法吗?
一旦编译了应用程序,这些值现在是否应该与其捆绑在一起?
我有一个问题,一旦我停止模拟器,如果我尝试打开以这种方式构建的应用程序,它会崩溃,并且我怀疑环境变量不再存在。
简而言之,我想要一个使用一组变量的开发构建和一个使用另一组变量的发布/生产构建。
您根本不需要环境变量!
转到构建设置并搜索活动的编译条件:
Add DEBUG
用于调试和RELEASE
就像我在这里所做的那样进行发布。
然后声明你的变量。假设你想要a
在发布模式下为 1,在调试模式下为 2,
#if RELEASE
let a = 1
#elseif DEBUG
let a = 2
#endif
就是这样!
编译器将根据您方案的构建配置选择要编译的值之一。这里是debug,所以会使用2:
有关于此的更多详细信息#if thingy https://stackoverflow.com/questions/38813906/swift-how-to-use-preprocessor-flags-like-if-debug-to-implement-api-keys/47395485
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)