App works in Go and Development build, but crashes immediately when submitted to App Store
Hey all,
I am a newbie to React Native and Expo, but wanted to create a basic user authentication app with push notification capabilities and a user profile page to hold some additional data. I'm using Supabase for the backend and I started off with this template:
https://github.com/FlemingVincent/expo-supabase-starter
I started development using Expo Go and it works without issues on iPhone and Android, and I also switched to a Development build and that also runs fine. I was also able to open the project in Xcode and after some minor debugging, was able to run it on iPhone simulator, on physical iPhone, and even submitted to the App Store and ran in TestFlight.
However I want to use EAS to reduce the complexity in managing push notifications specifically, so I set up EAS credentials and ran EAS build. I could install and run the development build fine, so I went to run EAS submit. However every time I submit to the App Store via EAS, and try it out in TestFlight, the app crashes immediately. The crash report in Xcode shows mostly issues with Hermes, but I've been unable to debug them:
hermes::vm::detail::TransitionMap::insertNew(hermes::vm::Runtime&, hermes::vm::detail::Transition const&, hermes::vm::Handlehermes::vm::HiddenClass) + 36 #1 (null) in hermes::vm::HiddenClass::addProperty(hermes::vm::Handlehermes::vm::HiddenClass, hermes::vm::Runtime&, hermes::vm::SymbolID, hermes::vm::PropertyFlags) () #2 (null) in hermes::vm::JSObject::addOwnPropertyImpl(hermes::vm::Handlehermes::vm::JSObject, hermes::vm::Runtime&, hermes::vm::SymbolID, hermes::vm::PropertyFlags, hermes::vm::Handlehermes::vm::HermesValue) () #4 (null) in hermes::vm::JSObject::putComputedWithReceiver_RJS(hermes::vm::Handlehermes::vm::JSObject, hermes::vm::Runtime&, hermes::vm::Handlehermes::vm::HermesValue, hermes::vm::Handle<hermes::vm::HermesV... () #5 (null) in facebook::hermes::HermesRuntimeImpl::setPropertyValue(facebook::jsi::Object const&, facebook::jsi::String const&, facebook::jsi::Value const&) () #6 0x0000000102fcc7c4 in facebook::jsi::Object::setPropertyValue(facebook::jsi::Runtime&, facebook::jsi::String const&, facebook::jsi::Value const&) const at /Users/user/Dev/expo-supabase-starter/node\_modules/react-native/ReactCommon/jsi/jsi/jsi.h:864 #7 0x0000000102fcc7c4 in void facebook::jsi::Object::setProperty<std::\_\_1::basic\_string<char, std::\_\_1::char\_traits<char>, std::__1::allocator<char>>&>(facebook::jsi::Runtime&, facebook::jsi::String const&, std::__1::basic... at /Users/user/Dev/expo-supabase-starter/node_modules/react-native/ReactCommon/jsi/jsi/jsi-inl.h:122 #8 0x0000000102fcc700 in void facebook::jsi::Object::setProperty<std::\_\_1::basic\_string<char, std::\_\_1::char\_traits<char>, std::__1::allocator<char>>&>(facebook::jsi::Runtime&, char const*, std::__1::basic_string<char, std... at /Users/user/Dev/expo-supabase-starter/node_modules/react-native/ReactCommon/jsi/jsi/jsi-inl.h:115 #9 0x00000001030790e4 in facebook::react::TurboModuleConvertUtils::convertNSExceptionToJSError(facebook::jsi::Runtime&, NSException*) at /Users/user/Dev/expo-supabase-starter/node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm:204
My package.json:
{
"name": "expo-supabase-starter",
"version": "1.0.0",
"main": "expo-router/entry",
"scripts": {
"start": "expo start",
"web": "expo start --web",
"android": "expo run:android",
"ios": "expo run:ios",
"lint": "eslint . --fix",
"dev": "APP_VARIANT=development npx expo start"
},
"dependencies": {
"@expo/config": "^10.0.0",
"@hookform/resolvers": "^3.10.0",
"@react-native-async-storage/async-storage": "1.23.1",
"@react-native-picker/picker": "2.9.0",
"@sentry/react-native": "~6.3.0",
"@supabase/supabase-js": "^2.48.1",
"class-variance-authority": "^0.7.0",
"clsx": "^2.1.1",
"expo": "^52.0.37",
"expo-apple-authentication": "^7.1.3",
"expo-application": "^6.0.2",
"expo-constants": "~17.0.7",
"expo-dev": "^0.0.1",
"expo-dev-client": "~5.0.12",
"expo-device": "~7.0.2",
"expo-image": "~2.0.6",
"expo-linking": "~7.0.5",
"expo-notifications": "~0.29.13",
"expo-router": "~4.0.17",
"expo-secure-store": "~14.0.1",
"expo-status-bar": "~2.0.1",
"expo-system-ui": "~4.0.8",
"hermes-engine": "0.11.0",
"nativewind": "^4.1.23",
"react": "18.0.0",
"react-dom": "18.3.1",
"react-hook-form": "^7.54.2",
"react-native": "0.76.7",
"react-native-dotenv": "^3.4.11",
"react-native-gesture-handler": "~2.20.2",
"react-native-picker-select": "^9.3.1",
"react-native-reanimated": "~3.16.1",
"react-native-safe-area-context": "4.12.0",
"react-native-screens": "~4.4.0",
"react-native-simple-dropdown-select": "^0.1.0",
"react-native-url-polyfill": "^2.0.0",
"react-native-web": "~0.19.13",
"tailwind-merge": "^2.5.4",
"tailwindcss": "^3.4.14",
"zod": "^3.24.2"
},
"devDependencies": {
"@babel/core": "^7.20.0",
"@types/react": "~18.3.12",
"eslint": "^9.14.0",
"eslint-config-universe": "^14.0.0",
"prettier": "^3.3.3",
"typescript": "~5.3.3"
},
"private": true
}
Any help would be appreciated!