I am trying to configure environment variables to my Expo project.
In development, the app works perfectly, but for some reason in production it apparently can't make a request, making me unable to test it in an APK Build.
My guess is that the .env keys aren't set correctly and I am missing one of the steps of this configuration.
I have exported my env variables to EAS Secrets through the command
eas secret:push --scope project
Then, I created the file app.config.js:
import "dotenv/config";
module.exports = () => {
return {
name: "MyApp-V2",
slug: "MyApp-V2",
scheme: "msauth.com.myapp",
extra: {
ENDPOINT_URL: process.env.ENDPOINT_URL,
CLIENT_ID: process.env.CLIENT_ID,
CLIENT_SECRET: process.env.CLIENT_SECRET,
TENANT_ID: process.env.TENANT_ID,
COMPANY_USER: process.env.COMPANY_USER,
COMPANY_PASSWORD: process.env.COMPANY_PASSWORD,
COMPANY_AUTH_USER: process.env.COMPANY_AUTH_USER,
COMPANY_AUTH_TOKEN: process.env.COMPANY_AUTH_TOKEN,
COMPANY_AUTH_JOB: process.env.COMPANY_AUTH_JOB,
LOGIN_API: process.env.LOGIN_API,
JOB_LIST_API: process.env.JOB_LIST_API,
TOKEN_ENDPOINT: process.env.TOKEN_ENDPOINT,
FIREBASE_API: process.env.FIREBASE_API,
AUTH_DOMAIN: process.env.AUTH_DOMAIN,
PROJECT_ID: process.env.PROJECT_ID,
STORAGE_BUCKET: process.env.STORAGE_BUCKET,
MESSAGING_SENDER_ID: process.env.MESSAGING_SENDER_ID,
APP_ID: process.env.APP_ID,
MEASUREMENT_ID: process.env.MEASUREMENT_ID,
eas: {
projectId: "***",
},
},
};
};
My app.json looks like this:
{
"expo": {
"name": "MyApp-V2",
"slug": "MyApp-V2",
"version": "1.0.0",
"orientation": "portrait",
"icon": "./src/assets/images/MyAppIcon.png",
"scheme": "msauth.com.myapp",
"userInterfaceStyle": "light",
"splash": {
"image": "./src/assets/images/splash.png",
"resizeMode": "contain",
"backgroundColor": "#ffffff"
},
"assetBundlePatterns": [
"**/*"
],
"ios": {
"supportsTablet": true,
"bundleIdentifier": "com.myapp",
"infoPlist": {
"NSFaceIDUsageDescription": "Face ID é usado para autenticar o usuário."
}
},
"android": {
"adaptiveIcon": {
"foregroundImage": "./src/assets/images/adaptive-icon.png",
"backgroundColor": "#ffffff"
},
"package": "msauth.com.myapp"
},
"web": {
"favicon": "./src/assets/images/favicon.png"
},
And my eas.json:
{
"cli": {
"version": ">= 3.12.0"
},
"build": {
"development": {
"developmentClient": true,
"distribution": "internal",
"ios": {
"resourceClass": "m-medium"
},
"android": {
"buildType": "apk",
"gradleCommand": ":app:assembleRelease"
}
},
"preview": {
"channel": "staging",
"distribution": "internal",
"ios": {
"simulator": true,
"resourceClass": "m-medium"
},
"android": {
"buildType": "apk"
}
},
"production": {
}
},
"submit": {
"production": {}
}
}
Since I already declared the variables in app.config.js, do I need to do it in app.json and eas.json as well?