Skip to content

App OTA Updates

SHIELD’s mobile app uses EAS Update to publish over-the-air (OTA) updates. OTA updates let us ship JavaScript/asset changes without rebuilding and re-submitting native binaries (as long as the change is compatible with the currently installed native build).

  • Channels: Each environment publishes to its own EAS Update channel (development, staging, production). Devices receive updates from the channel their build is configured to use.
  • Environment variables: OTA updates pull environment variables from remote EAS Secrets based on the target environment/channel.
  • Release vs update: Native changes (e.g. adding native modules, changing permissions, upgrading SDKs) require a new build + store/TestFlight distribution. JavaScript-only changes can be shipped via OTA.

Publishing is done via npm scripts and requires an UPDATE_MESSAGE so the update is identifiable in EAS.

For practical release guidance (staging vs production vs hotfix), see Pushing Updates Safely.

  1. Choose the target environment Decide whether you’re updating development, staging, or production.

  2. Publish the OTA update Run the matching script with an UPDATE_MESSAGE.

    Terminal window
    # Development
    UPDATE_MESSAGE="Your update message" npm run update:development
    # Staging
    UPDATE_MESSAGE="Your update message" npm run update:staging
    # Production
    UPDATE_MESSAGE="Your update message" npm run update:production

    Each command targets the appropriate channel and environment, ensuring environment variables are pulled from the correct remote EAS Secrets for that environment.