如何在Xcode 6中访问Build Settings?

Dea*_*ean 21 xcode ios swift

似乎有很多如何访问生成设置变量的变化(即定义不同的Web服务的基础URL Debug与Release环境).

我在Project - > Building Settings中创建了一个User-Defined变量,每个环境都有一个变量.我们称之为WEB_SERVICE_BASE_URL.

如何在代码中访问它?我正在使用XCode 6和Swift.

我试过这个,但它不起作用

let api_key = ${WEB_SERVICE_BASE_URL}
Run Code Online (Sandbox Code Playgroud)

我也试过这个也没用

let api_key = NSUserDefaults.standardUserDefaults().stringForKey("WEB_SERVICE_BASE_URL")
Run Code Online (Sandbox Code Playgroud)

有什么建议?这似乎是一个经常需要的解决方案,它在Rails中非常容易,但在iOS开发中并非如此.

Alb*_*ori 37

以下是如何设置它:

  1. 将用户定义的设置添加到目标Build Settings(您使用的WEB_SERVICE_BASE_URL)
  2. Info.plist使用键添加到目标文件的新行:WEB_SERVICE_BASE_URL,键入:String,value:${WEB_SERVICE_BASE_URL}

以下是获取价值的方法:

let api_key = Bundle.main.object(forInfoDictionaryKey: "WEB_SERVICE_BASE_URL") as? String
Run Code Online (Sandbox Code Playgroud)

注意:可以从包中提取这些键/值,因此请务必避免在其中存储敏感数据.

  • 因为info.plist的`objectForInfoDictionaryKey()`方法是你如何获取在编译时确定的值(通过构建设置).如果不将该条目添加到.plist文件中,`objectForInfoDictionaryKey()`将在运行时返回nil.可能还有其他方法可以做到这一点,但这种方式很好. (3认同)
  • 为什么需要将条目添加到Info.plist? (2认同)