如何访问Xcode 6中的生成设置?

如何访问构build设置variables(即为不同的DebugRelease环境定义Web服务的基本URL)似乎有很多变化。

我在Project – > Building Settings中创build了一个User-Definedvariables,每个环境一个。 我们称之为WEB_SERVICE_BASE_URL

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

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

 let api_key = ${WEB_SERVICE_BASE_URL} 

我也试过这个,也不起作用

 let api_key = NSUserDefaults.standardUserDefaults().stringForKey("WEB_SERVICE_BASE_URL") 

有什么build议么? 这似乎是一个经常需要的解决scheme,在Rails中非常容易,但在iOS开发中却不那么容易。

以下是设置方法:

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

以下是如何获得价值:

 let api_key = Bundle.main.object(forInfoDictionaryKey: "WEB_SERVICE_BASE_URL") as? String 

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

最简单的方法是每次切换环境时手动修改configuration。 这意味着修改编译器标志或手动修改项目中的值。 这种方法容易出错,乏味,远非理想。 更好的解决scheme是为每个环境创build一个自定义configuration。 这包括创build一个集中环境variables和自定义Xcodescheme的configuration文件。

按照这个教程,虽然它使用目标C,它很容易转换为迅速。