如何访问Xcode 6中的生成设置?
如何访问构build设置variables(即为不同的Debug
与Release
环境定义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开发中却不那么容易。
以下是设置方法:
- 将用户定义的设置添加到您的目标的
Build Settings
(您使用WEB_SERVICE_BASE_URL
) - 使用键:
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,它很容易转换为迅速。