我的项目只有一个目标,具有三种配置:
调试、UAT、发布
我有四个共享方案,它们使用这些配置进行构建/运行/测试/配置文件/分析/存档。
在我的应用程序中,每个方案都有不同的捆绑 ID。这很容易更改,我在每个配置的产品包标识符中进行了更改。
但是,我希望每个方案都连接到不同的 REST API。 (dev.example.com/api 等)
为每个环境设置变量然后在我的应用程序中使用它的最佳方法是什么?
我看过:
1) Swift 编译器>自定义标志(我的当前是 $(inherited) "-D""COCOAPODS")
2) NSProcessInfo.processInfo().environment
3)为每个环境添加Configuration.plist文件
基本上,我不清楚哪种方法是最好的方法。
感谢您的帮助。
最佳答案
我通常更喜欢这个:
我在不同的 .xcconfig 文件中定义常量,然后将它们用作单个 plist 文件中的键。
假设您的 debug.xcconfig
中有此内容:
<pre>
BASEURL = api.dev.com/api/"
</pre>
然后,在您的 plist 中添加一个键 baseUrl = http://${BASEURL}
然后,在代码中,您可以使用以下方式访问它
NSBundle.mainBundle().infoDictionary?["baseUrl"]
如果您想了解有关 xcconfig 的更多信息,这是一篇很棒的文章:http://www.jontolof.com/cocoa/using-xcconfig-files-for-you-xcode-project/
关于ios - Xcode Swift 代码中使用的不同方案中的环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34638515/