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).
Key concepts
Section titled “Key concepts”- 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 updates
Section titled “Publishing updates”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.
-
Choose the target environment Decide whether you’re updating development, staging, or production.
-
Publish the OTA update Run the matching script with an
UPDATE_MESSAGE.Terminal window # DevelopmentUPDATE_MESSAGE="Your update message" npm run update:development# StagingUPDATE_MESSAGE="Your update message" npm run update:staging# ProductionUPDATE_MESSAGE="Your update message" npm run update:productionEach command targets the appropriate channel and environment, ensuring environment variables are pulled from the correct remote EAS Secrets for that environment.