When building with app with eas build --platform android, and publish to play store crashes at application start

EAS.JSON

  "cli": {
    "version": ">= 0.57.0"
  },
  "build": {
    "development": {
      "developmentClient": true,
      "distribution": "internal"
    },
    "preview": {
      "distribution": "internal",
      "channel":"preview"
    },
    "production": {
      "channel":"production"
    }
  },
  "submit": {
    "production": {}
  }

package.json

{
  "name": "teviapp",
  "version": "1.0.0",
  "main": "node_modules/expo/AppEntry.js",
  "scripts": {
    "start": "expo start",
    "android": "expo start --android",
    "ios": "expo start --ios",
    "web": "expo start --web",
    "eject": "expo eject"
  },
  "dependencies": {
    "@expo-google-fonts/inter": "^0.2.2",
    "@expo-google-fonts/rajdhani": "^0.2.2",
    "@react-native-async-storage/async-storage": "~1.17.3",
    "@react-navigation/material-top-tabs": "^6.1.1",
    "@react-navigation/stack": "^6.1.1",
    "axios": "^0.27.2",
    "date-fns": "^2.29.2",
    "expo": "^46.0.0",
    "expo-camera": "~12.3.0",
    "expo-font": "~10.2.0",
    "expo-linear-gradient": "~11.4.0",
    "expo-splash-screen": "~0.16.1",
    "expo-status-bar": "~1.4.0",
    "lottie-react-native": "5.1.3",
    "react": "18.0.0",
    "react-dom": "18.0.0",
    "react-native": "0.69.5",
    "react-native-gesture-handler": "~2.5.0",
    "react-native-iphone-x-helper": "^1.3.1",
    "react-native-paper": "^4.11.2",
    "react-native-shimmer-placeholder": "^2.0.8",
    "react-native-tab-view": "^3.1.1",
    "react-native-vector-icons": "^9.1.0",
    "react-native-web": "~0.18.7",
    "react-native-webview": "11.23.0",
    "expo-updates": "~0.14.5"
  },
  "devDependencies": {
    "@babel/core": "^7.18.6",
    "@types/react": "~18.0.0",
    "@types/react-native": "~0.69.1",
    "typescript": "^4.6.3"
  },
  "private": true
}

i’m running into the same problem and it’s driving me crazy. what expo SDK are you using?

would your “main” be considered a custom main? see custom main section: Migrating from "expo build" - Expo Documentation

I’m using SDK 46, I don’t know what “MAIN” means, and a simple, standard project.

Probably your package.json main (the entry point to your app).

My ‘main’ is also set to node_modules/expo/AppEntry.js

can you explain better? is this a solution?

Sorry - I meant that’s what a-fredette is referring to by “main” - they’re asking you if you changed the main key in package.json but I said, I don’t think you did. Very likely not the solution.

Production crashes on open can be notoriously difficult to resolve :frowning: You might have to do it through a process of elimination by taking out one package or suspect code at a time and see what works. I wasted 2 days on this before realizing it was the ‘watchFolders’ in my metro config file that was blowing up my build process with a totally misleading error message.

Got it, I’m going to do these steps. Currently I used “expo build:android -t app-bundle” to serve the customer but I know that soon this problem will come back again.

Hi

"main": "node_modules/expo/AppEntry.js", is fine. It is expected for a managed app.

Please see https://docs.expo.dev/workflow/debugging/#production-errors

In particular, if it works in development, but not in production, you can try running your app locally in production mode. As mentioned in the above page you can do this by running:

npx expo start --no-dev --minify

See the rest of the page for other things you can try.

1 Like