Skip to Content
CLIdispatch publish

dispatch publish

Export your Expo app and publish an OTA release to AppDispatch.

Usage

dispatch publish [OPTIONS]

Options

FlagDefaultDescription
--channelproductionTarget channel (e.g. production, staging, canary)
-m, --messageLatest git commitRelease message
--platformBothPlatform to build: ios, android, or both
--rollout100Rollout percentage (0–100)
--criticalfalseForce immediate reload on devices
--no-publishfalseUpload the build without publishing — publish later from the dashboard
--runtime-versionAuto-detectedOverride the runtime version (skips fingerprint computation)

Examples

Publish to production

dispatch publish

Publish to staging with a message

dispatch publish --channel staging -m "fix onboarding bug"

Gradual rollout

dispatch publish --rollout 10 -m "testing new checkout flow"

Then increase later from the dashboard, or publish again with a higher percentage.

Critical update

dispatch publish --critical -m "security patch"

Critical releases force an immediate reload instead of waiting for the next app launch.

iOS only

dispatch publish --platform ios -m "iOS-specific fix"

Upload without publishing

dispatch publish --no-publish -m "ready for QA review"

The build will appear in the dashboard where it can be reviewed and published manually.

What it does

  1. Loads project config from .dispatch/config.json and credentials from ~/.dispatch/credentials.json
  2. Computes a runtime fingerprint using @expo/fingerprint
  3. Runs npx expo export for each platform
  4. Uploads assets to AppDispatch via multipart upload
  5. Publishes the build to the target channel (unless --no-publish)

iOS and Android builds are grouped together so they appear as a single release in the dashboard.

Last updated on