Upload and Manage Releases
Bundle, upload, roll out, and promote OTA releases.
Upload an existing bundle
NitroPush detects Expo output from metadata.json and CodePush output from Hermes .hbc bundles. Use --kind expo or --kind codepush when detection needs an override. For NativeScript, use explicit --kind nativescript, the complete built app directory, an exact runtime fingerprint, and a signing key. See the NativeScript release workflow.
The dashboard version is the automatic integer sequence, starting at 1 for each project/environment/runtime target. Labels and runtime fingerprints are stored separately. Do not use a fingerprint as a release label. Failed/expired upload reservations can leave gaps; never renumber signed releases.
Let the CLI build
Add --project-dir or --entry-file when the current directory and index.js defaults do not match your app. Automatic bundling is for RN/Expo only; build NativeScript with its own Webpack/native pipeline.
Common options
| Option | Purpose |
|---|---|
--platforms ios,android | Upload both configured platforms |
--signing-key path.pem | Sign with an ECDSA P-256 private key |
--delta | NativeScript: changed-file patches and unchanged references; RN/Expo: experimental bundle patch |
--assets-dir ./assets | Include assets with a single CodePush bundle file |
Rollout and promotion
Start with a limited rollout, watch application health, then increase the percentage. Promotion moves a release to the next environment.
Signed release context cannot be rewritten during promotion. For signed releases
(including every NativeScript release), upload and sign a fresh release for the
destination environment instead of using release promote.