# Project Configuration File (config.json)
Alloy uses the config.json
file, located in the project's app
directory, to specify global values, conditional environment and platform values, and widget dependencies. The configuration file contains the following objects:
Object | Description |
---|---|
global | Contains key-value pairs present for all environments and platforms. |
env:development | Contains key-value pairs present for targets built for development, running in either the simulator or emulator. |
env:test | Contains key-value pairs present for targets built for testing on a device. |
env:production | Contains key-value pairs present for targets built for production, running after a package installation. |
os:android | Contains key-value pairs present for targets built for Android. |
os:ios | Contains key-value pairs present for targets built for iOS. |
os:windows | Contains key-value pairs present for targets built for Windows Phone. Note: Support for Windows 8.1 and Windows Phone SDKs has been deprecated as of SDK 6.3.0.GA and has be removed in SDK 7.0.0.GA. |
dependencies | Contains key-value pairs for widget dependencies, where the key is the widget name and the value is the version number of the widget. |
autoStyle | Enables the autostyle feature for the entire Alloy project. See Dynamic Styles: Autostyle for more information. |
backbone | Select the Backbone.js library to use for Alloy Model and Collection objects. Set to either 0.9.2 (default for backwards compatibility), 1.1.2 . or 1.3.3 . |
When mixed together, 'os' values override 'env' values, which override 'global' values. If you want to specify both a platform and environment-specific configuation, combine the 'os' and 'env' values together into one string with the values space separated. These values are accessible during runtime by prefixing the key with Alloy.CFG
.
Example of a configuration file:
config.json
{
"global": { "foo": 1 },
"env:development": { "foo": 2 },
"env:test": { "foo": 3 },
"env:production": { "foo": 4 },
"os:ios env:production": { "foo": 5 },
"os:ios env:development": { "foo": 6 },
"os:ios env:test": { "foo": 7 },
"os:android": { "foo": 8 },
"dependencies": {
"com.foo.widget": "1.0"
}
}
In the above example, if the application is ran on the iPhone simulator and prints out 'foo' using Ti.API.info(Alloy.CFG.foo)
, it will return '6.'