Skip to main content

Configuration

app.json​

KeyValue
name / slug / versionEMAW / EMAW / 1.1.3
ios.bundleIdentifiercom.emaw-app.com; supportsTablet: true; ITSAppUsesNonExemptEncryption: false
android.packagecom.emaw_app.app; adaptive icon background #1B1C54; permissions RECORD_AUDIO, MODIFY_AUDIO_SETTINGS
pluginsexpo-localization, expo-audio, expo-sqlite, expo-secure-store, expo-status-bar, expo-splash-screen (Bulldog image), ./plugins/withGradleJvmArgs
updatesurl: https://u.expo.dev/<projectId>, fallbackToCacheTimeout: 0; runtimeVersion.policy: appVersion
extra.eas.projectIdthe EAS project
userInterfaceStylelight

No scheme, associatedDomains or intentFilters: the app has no deep links.

app.config.js​

Wraps app.json and injects, from the environment:

  • extra.googleSignIn.webClientId ← EXPO_PUBLIC_GOOGLE_WEB_CLIENT_ID (the audience the backend verifies)
  • extra.googleSignIn.iosClientId ← EXPO_PUBLIC_GOOGLE_IOS_CLIENT_ID
  • the @react-native-google-signin/google-signin plugin with the reversed iOS client id as URL scheme, only when the iOS id is set

utils/googleSignIn.js reads them via Constants.expoConfig.extra.googleSignIn. With no web id the Google button is hidden.

.env​

Committed on purpose; the values are public OAuth client identifiers:

VariableUsed
EXPO_PUBLIC_GOOGLE_WEB_CLIENT_IDyes
EXPO_PUBLIC_GOOGLE_IOS_CLIENT_IDyes
EXPO_PUBLIC_GOOGLE_ANDROID_CLIENT_ID, EXPO_PUBLIC_GOOGLE_ANDROID_LOCAL_CLIENT_IDdefined but never read (Android matches by package + SHA-1)

.env*.local is gitignored for personal overrides.

eas.json​

ProfileSettings
developmentdevelopmentClient: true, internal distribution, channel development
previewinternal distribution, channel preview, Android APK, iOS simulator build
productionautoIncrement: true, channel production, Android app bundle, iOS device build
submit.production.iosappleId only; no ascAppId, no Android submit config

cli.version >= 13.2.0, appVersionSource: remote (EAS tracks build numbers).

Backend URL​

Not configurable at runtime: constants/backendIp.js (Local development).

Styling​

constants/styles.js exports EMAWStyles, DarkThemeStyles, the colour palette and fonts (FrankRuhlLibre is loaded in App.js). Use these rather than inline styles.