Skip to main content
AMiSi Mobile Starter separates native Expo configuration, runtime product configuration, and environment-specific values. Keep each setting in its owning layer.

Configuration layers

app.config.js is evaluated after app.json and overrides the app name, scheme, bundle identifiers, and Firebase file paths. Updating only app.json or amisi.config.json does not change those values in the evaluated Expo config.
The root amisi.config.json is imported by @amisi-mobile-starter/config at bundle time. Its adapter, security, and theme values are not selected per EAS environment unless you change the file before building. packages/config/src/env.ts parses environment variables, while packages/config/src/flags.ts selects fixed flags from EXPO_PUBLIC_APP_ENV.
  1. Set the base app identity in apps/mobile/app.config.js and keep matching base values in apps/mobile/app.json and amisi.config.json.
  2. Replace branding paths and configure Expo plugins in apps/mobile/app.json.
  3. Select runtime adapters and theme values in amisi.config.json.
  4. Link your Expo project and replace starter-specific IDs in app.json and eas.json.
  5. Create development, preview, and production values in EAS.
  6. Add the matching Firebase native files for each build variant.
  7. Inspect the evaluated config before rebuilding:
Native configuration changes require a new native build. JavaScript-only runtime configuration can usually be tested by restarting Metro.

Configurator

The local Configurator can edit apps/mobile/app.json, upload branding files, and edit selected fields in amisi.config.json:
It previews diffs before applying them. It does not edit app.config.js, eas.json, EAS environment values, or native Firebase files. See Configurator for its exact scope.