t4-app
t4-app copied to clipboard
Expo config env variables
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.
I'm a bit confused as well. The .env variable setup out of the box is completely broken
Seems sensible. What about app.json? And where does expo.yml fit into this?