t4-app icon indicating copy to clipboard operation
t4-app copied to clipboard

Expo config env variables

Open guioum opened this issue 1 year ago • 2 comments

In app.config.ts, it reads multiple env variables.

These variables do not exist (bun install prefixes all variables with EXPO_PUBLIC_).

It should be EXPO_PUBLIC_EAS_PROJECT_ID, EXPO_PUBLIC_EAS_OWNER.

Also, I would recommend removing hardcoded values, to leverage env variables, and to make the template free of hardcoded values.

Something like this works for us:

import { ConfigContext, ExpoConfig } from '@expo/config'

export default ({ config }: ConfigContext): ExpoConfig => ({
  ...config,
  extra: {
    eas: {
      projectId: process.env.EXPO_PUBLIC_EAS_PROJECT_ID,
    },
  },
  owner: process.env.EXPO_PUBLIC_EAS_OWNER,
  plugins: ['expo-router'],
  experiments: {
    tsconfigPaths: true,
    typedRoutes: true,
  },
  platforms: ['ios', 'android'],
  ios: {
    bundleIdentifier: process.env.EXPO_PUBLIC_EAS_OWNER_ID,
  },
  android: {
    package: process.env.EXPO_PUBLIC_EAS_OWNER_ID,
  },
  name: process.env.EXPO_PUBLIC_EAS_NAME,
  slug: process.env.EXPO_PUBLIC_EAS_SLUG,
  updates: {
    url:
      process.env.EXPO_PUBLIC_EAS_UPDATES_URL,
  },
  runtimeVersion: {
    policy: 'sdkVersion',
  },
})

Please note that we added new variables to .env.local, and also expo.yml.

guioum avatar Nov 21 '23 13:11 guioum

I'm a bit confused as well. The .env variable setup out of the box is completely broken

bmikaili avatar Dec 07 '23 20:12 bmikaili

Seems sensible. What about app.json? And where does expo.yml fit into this?

timothymiller avatar Dec 08 '23 23:12 timothymiller