Skip to content

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).

Use these as the default release path first.

  1. Choose environment Pick staging or production.

  2. Run the automation command Use the matching shield-driver-app script:

    {
    "build:production": "eas build --platform all --profile production --auto-submit",
    "build:staging": "eas workflow:run .eas/workflows/build-staging.yml"
    }
  3. 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):

  1. Pick platform + environment Decide which of iOS/Android and staging/production you’re building for.

  2. 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"
    }
  1. Submit with EAS Run iOS submit for staging:

    Terminal window
    eas submit --platform ios --profile staging

    If your app uses a dedicated submit profile (instead of the same staging profile as the build), use that submit profile name instead.

  2. Select the staging build Choose the build artifact produced by the staging iOS build you created just above.

  3. Add to TestFlight group In App Store Connect, add the build to the correct TestFlight group: SHIELD iOS TestFlight

  4. Staging check: verify testing group Confirm the build appears in the intended staging testing group (do not leave it only in internal/default groups).

  5. Transporter fallback (if EAS submit fails) If eas submit fails and you still have the built .ipa artifact:

    • 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.
  1. Submit with EAS Run iOS submit for production:

    Terminal window
    eas submit --platform ios --profile production

    If your app uses a dedicated submit profile (instead of the same production profile as the build), use that submit profile name instead.

  2. Submit for App Store release Submit for App Store release instead of TestFlight-only.

  3. Transporter fallback (if EAS submit fails) If eas submit fails, you can still upload the produced .ipa using Transporter:

    • Download the matching iOS .ipa artifact from the EAS build results page.
    • Open Transporter and upload the .ipa to App Store Connect.
    • Continue the release configuration in App Store Connect after upload.
  1. Download the staging APK Download the staging APK artifact.

  2. Upload to Firebase App Distribution Upload it to Firebase App Distribution and release it from: SHIELD Staging Firebase Distribution

  3. Staging check: verify tester group Confirm the release is assigned to the correct staging tester group before sharing.

  1. Download the production artifact Download the production Android build artifact (typically an .aab).

  2. Upload to Google Play Upload it to the Google Play Developer Console for release.