0

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?

gchan26
  • 25
  • 1
  • 6

0 Answers0