# tns deploy

==========

Usage | Synopsis
--- | ---
Deploy on Android | `$ tns deploy android [--device <Device ID>] [--key-store-path <File Path> --key-store-password <Password> --key-store-alias <Name> --key-store-alias-password <Password>] [--release]`
Deploy on iOS | `$ tns deploy ios [--device <Device ID>] [--release]`

Prepares, builds and deploys the project to a connected physical or virtual device. You must specify the target platform on which you want to deploy. It will deploy the app on all connected devices targeting the selected platform.

> IMPORTANT: Before building for iOS device, verify that you have configured a valid pair of certificate and provisioning profile on your OS X system. For more information, see Obtaining Signing Identities and Downloading Provisioning Profiles.

### Options for iOS

- `--device` - Deploys the project on the specified connected physical or virtual device.
- `--release` - If set, produces a release build. Otherwise, produces a debug build.

### Options for Android

- `--device` - Deploys the project on the specified connected physical or virtual device.
- `--clean` - If set, forces rebuilding the native application.
- `--release` - If set, produces a release build. Otherwise, produces a debug build. When set, you must also specify the `--key-store-*` options.
- `--key-store-path` - Specifies the file path to the keystore file (P12) which you want to use to code sign your APK. You can use the `--key-store-*` options along with `--release` to produce a signed release build. You need to specify all `--key-store-*` options.
- `--key-store-password` - Provides the password for the keystore file specified with `--key-store-path`. You can use the `--key-store-*` options along with `--release` to produce a signed release build. You need to specify all `--key-store-*` options.
- `--key-store-alias` - Provides the alias for the keystore file specified with `--key-store-path`. You can use the `--key-store-*` options along with `--release` to produce a signed release build. You need to specify all `--key-store-*` options.
- `--key-store-alias-password` - Provides the password for the alias specified with `--key-store-alias-password`. You can use the `--key-store-*` options along with `--release` to produce a signed release build. You need to specify all `--key-store-*` options.

### Attributes

- `<Device ID>` is the index or name of the target device as listed by `$ tns devices`

### Command Limitations

- You can run `$ tns deploy ios` only on OS X systems.
- When the `--release` flag is set for an Android build, you must also specify all `--key-store-*` options.

### Related Commands

Command | Description
--- | ---
appstore | Lists applications registered in iTunes Connect.
appstore upload | Uploads project to iTunes Connect.
build android | Builds the project for Android and produces an APK that you can manually deploy on device or in the native emulator.
build ios | Builds the project for iOS and produces an APP or IPA that you can manually deploy in the iOS Simulator or on device, respectively.
build | Builds the project for the selected target platform and produces an application package that you can manually deploy on device or in the native emulator.
debug android | Debugs your project on a connected Android device or in a native emulator.
debug ios | Debugs your project on a connected iOS device or in a native emulator.
debug | Debugs your project on a connected device or in a native emulator.
run android | Runs your project on a connected Android device or in a native Android emulator, if configured.
run ios | Runs your project on a connected iOS device or in the iOS Simulator, if configured.
run | Runs your project on a connected device or in the native emulator for the selected platform.
test init | Configures your project for unit testing with a selected framework.
test android | Runs the tests in your project on Android devices or native emulators.
test ios | Runs the tests in your project on iOS devices or the iOS Simulator.