EAS Build development client crashing when development menu shown

Since switching to EAS my development client is blowing up whenever I open the dev menu on a physical device (either by shaking the device or three finger touch). There’s no error message in the console when running yarn start ( APP_VARIANT=dev expo start --dev-client ).

Note that debugging remote JS is disabled.

The built dev client’s dev menu works fine when the project is not open, it only crashes when the project is being served locally and dev menu is triggered on a physical device.

I’ve:

  • tried multiple builds
  • have checked that all my expo dependencies are on the latest version
  • spent hours searching for others with this issue

but haven’t managed to make any headway.

This doesn’t happen when running the iOS simulator build. I’m struggling to know how to debug this or make any headway without any error message or logs, has anyone ever heard of this or got any tips on how to debug something like this? I’d love it if there was an error message in the console so I had something to start with.

Any guidance on how best to pin this issue down is much appreciated!


Details

Workflow: managed

EAS version:

$ eas -v
eas-cli/0.44.1 darwin-x64 node-v14.18.1

eas.json:

{
  "cli": {
    "version": ">= 0.42.4"
  },
  "build": {
    "dev": {
      "developmentClient": true,
      "distribution": "internal",
      "env": {
        "APP_VARIANT": "dev"
      },
      "releaseChannel": "dev"
    },
    "dev:simulator": {
      "developmentClient": true,
      "distribution": "internal",
      "env": {
        "APP_VARIANT": "dev"
      },
      "ios": {
        "simulator": true
      },
      "releaseChannel": "dev"
    },
    "staging": {
      "distribution": "internal",
      "env": {
        "APP_VARIANT": "staging"
      },
      "releaseChannel": "staging"
    },
    "prod": {
      "releaseChannel": "prod-v1"
    }
  },
  "submit": {
    "prod": {}
  }
}

package.json:

{
  "private": true,
  "name": "Blocks",
  "version": "0.1.0",
  "scripts": {
    "start": "APP_VARIANT=dev expo start --dev-client",
    "android": "expo run:android",
    "ios": "expo run:ios",
    "web": "expo start --web",
    "eject": "expo eject",
    "build:dev": "eas build --platform ios --profile dev",
    "build:dev:sim": "eas build --platform ios --profile dev:simulator",
    "build:staging": "eas build --platform ios --profile staging",
    "build:prod": "eas build --platform ios --profile prod"
  },
  "eslintConfig": {
    "extends": "react-app"
  },
  "dependencies": {
    "@expo-google-fonts/work-sans": "^0.2.0",
    "@expo/metro-config": "^0.3.8",
    "@expo/vector-icons": "^12.0.0",
    "@react-native-async-storage/async-storage": "~1.15.0",
    "@react-native-clipboard/clipboard": "^1.8.5",
    "@react-native-community/datetimepicker": "4.0.0",
    "@react-native-community/masked-view": "^0.1.10",
    "@react-native-picker/picker": "2.2.1",
    "@react-navigation/native": "^6.0.6",
    "@react-navigation/stack": "^6.0.11",
    "@sentry/react-native": "^3.2.10",
    "emoji-datasource": "^6.0.0",
    "expo": "^44.0.0",
    "expo-app-loading": "~1.3.0",
    "expo-application": "~4.0.1",
    "expo-blur": "~11.0.0",
    "expo-constants": "~13.0.0",
    "expo-dev-client": "~0.8.0",
    "expo-device": "~4.1.0",
    "expo-haptics": "~11.1.0",
    "expo-linking": "~3.0.0",
    "expo-notifications": "~0.14.0",
    "expo-sensors": "~11.1.0",
    "expo-splash-screen": "~0.14.1",
    "expo-status-bar": "~1.2.0",
    "expo-updates": "~0.11.3",
    "immer": "^8.0.0",
    "lodash": "^4.17.21",
    "moment": "^2.29.1",
    "react": "17.0.1",
    "react-dom": "17.0.1",
    "react-hook-form": "^6.14.2",
    "react-native": "0.64.3",
    "react-native-gesture-handler": "~2.1.0",
    "react-native-get-random-values": "~1.7.0",
    "react-native-keyboard-aware-scroll-view": "^0.9.5",
    "react-native-markdown-renderer": "^3.2.8",
    "react-native-modal-datetime-picker": "^9.2.0",
    "react-native-safe-area-context": "3.3.2",
    "react-native-screens": "~3.10.1",
    "react-native-svg": "12.1.1",
    "react-native-tailwindcss": "^1.1.11",
    "react-native-web": "0.17.1",
    "react-redux": "^7.2.2",
    "redux": "^4.0.5",
    "redux-persist": "^6.0.0",
    "redux-persist-expo-filesystem": "^2.0.0",
    "redux-sentry-middleware": "^0.2.2",
    "redux-thunk": "^2.3.0",
    "reselect": "^4.0.0",
    "sentry-expo": "^4.0.0",
    "styled-components": "^5.2.1",
    "uuid": "^8.3.2"
  },
  "devDependencies": {
    "@babel/core": "^7.12.9",
    "@types/styled-components": "^5.1.19",
    "babel-plugin-module-resolver": "^4.0.0",
    "babel-preset-expo": "9.0.1",
    "eslint": "^6.8.0",
    "eslint-config-prettier": "^6.10.1",
    "eslint-plugin-prettier": "^3.1.2",
    "eslint-plugin-react": "^7.19.0",
    "eslint-plugin-react-native": "^3.8.1",
    "prettier": "^2.0.4",
    "react-native-svg-transformer": "^0.20.0",
    "typescript": "~4.3.5"
  }
}

Did you find resolution? I just upgraded to SDK 46 and the same thing is happening to me.

I haven’t worked on this project for a while, so I just checked the git commit history for the time and I don’t think I did, I believe the issue still occurs but can’t quite remember for definite.

Sorry not to be of more help @jpeavler3, hope you can get to the bottom of it, and please report back if you do!

1 Like

Thanks for taking the time to look into it. If I find a solution, I’ll report back.

1 Like