Reputation: 7225
There seems to be a lot of variations of how to access the Build Settings variables (i.e. to define the base URL of a web service for different Debug
vs. Release
environments).
I created a User-Defined variable in Project -> Building Settings, one for each environment. Let's call it WEB_SERVICE_BASE_URL
.
How do I access it in the code? I'm using XCode 6 and Swift.
I've tried this but it doesn't work
let api_key = ${WEB_SERVICE_BASE_URL}
I've also tried this and it also doesn't work
let api_key = NSUserDefaults.standardUserDefaults().stringForKey("WEB_SERVICE_BASE_URL")
Any suggestions? This seems to be a often needed solution, it's so easy in Rails, but not so in iOS development.
Upvotes: 23
Views: 14200
Reputation: 10012
Here's how to set it up:
Build Settings
(which you did with WEB_SERVICE_BASE_URL
)Info.plist
file with key: WEB_SERVICE_BASE_URL
, type: String
, value: ${WEB_SERVICE_BASE_URL}
Here's how get the value:
let api_key = Bundle.main.object(forInfoDictionaryKey: "WEB_SERVICE_BASE_URL") as? String
Note: These keys/values can be extracted from the package, so be sure to avoid storing sensitive data in there.
Upvotes: 43