Native Builds
Use a native build when changes require rebuilding the iOS/Android binary (for example: SDK upgrades, permissions changes, native modules, or as a rule-of-thumb when package.json changes).
Default Method (Automated Build + Submit)
Section titled “Default Method (Automated Build + Submit)”Use these as the default release path first.
-
Choose environment Pick
stagingorproduction. -
Run the automation command Use the matching
shield-driver-appscript:{"build:production": "eas build --platform all --profile production --auto-submit","build:staging": "eas workflow:run .eas/workflows/build-staging.yml"} -
Validate distribution state Confirm iOS and Android artifacts landed in the expected destinations (TestFlight / App Store Connect and Firebase / Google Play, depending on environment).
Manual Methods (Per-Platform Builds + Submit)
Section titled “Manual Methods (Per-Platform Builds + Submit)”These commands are the relevant shield-driver-app package.json scripts (split by platform + environment):
-
Pick platform + environment Decide which of iOS/Android and staging/production you’re building for.
-
Run the matching build command Run the matching script.
{"build:ios:staging:cloud": "eas build --platform ios --profile staging","build:ios:production:cloud": "eas build --platform ios --profile production","build:android:production:cloud": "eas build --platform android --profile production","build:android:staging-apk": "eas build --platform android --profile staging-apk"}
Distribution
Section titled “Distribution”Staging
Section titled “Staging”-
Submit with EAS Run iOS submit for staging:
Terminal window eas submit --platform ios --profile stagingIf your app uses a dedicated submit profile (instead of the same
stagingprofile as the build), use that submit profile name instead. -
Select the staging build Choose the build artifact produced by the staging iOS build you created just above.
-
Add to TestFlight group In App Store Connect, add the build to the correct TestFlight group: SHIELD iOS TestFlight
-
Staging check: verify testing group Confirm the build appears in the intended staging testing group (do not leave it only in internal/default groups).
-
Transporter fallback (if EAS submit fails) If
eas submitfails and you still have the built.ipaartifact:- Download the matching build artifact from the EAS build results page (for the same staging build you were submitting).
- Open the Apple Transporter macOS app.
- Sign in to App Store Connect and upload the
.ipa. - After upload, assign it to the correct TestFlight group in App Store Connect.
Production
Section titled “Production”-
Submit with EAS Run iOS submit for production:
Terminal window eas submit --platform ios --profile productionIf your app uses a dedicated submit profile (instead of the same
productionprofile as the build), use that submit profile name instead. -
Submit for App Store release Submit for App Store release instead of TestFlight-only.
-
Transporter fallback (if EAS submit fails) If
eas submitfails, you can still upload the produced.ipausing Transporter:- Download the matching iOS
.ipaartifact from the EAS build results page. - Open Transporter and upload the
.ipato App Store Connect. - Continue the release configuration in App Store Connect after upload.
- Download the matching iOS
Android
Section titled “Android”Staging
Section titled “Staging”-
Download the staging APK Download the staging APK artifact.
-
Upload to Firebase App Distribution Upload it to Firebase App Distribution and release it from: SHIELD Staging Firebase Distribution
-
Staging check: verify tester group Confirm the release is assigned to the correct staging tester group before sharing.
Production
Section titled “Production”-
Download the production artifact Download the production Android build artifact (typically an
.aab). -
Upload to Google Play Upload it to the Google Play Developer Console for release.