I am completely at a loss here - I have a react native app created within expo. It runs perfectly well with expo go. I then built it using eas on my Mac (latest Ventura OS installed) and posted it to app store connect and installed it through TestFlight - it crashed immediately. I'm VERY new to this so it took me a long time to figure out how to troubleshoot this but I ended up finding this in the crash logs:
Thread 2 name: Dispatch queue: com.facebook.react.ExceptionsManagerQueue
Thread 2 Crashed:
0 libsystem_kernel.dylib 0x2076d8200 __pthread_kill 8
1 libsystem_pthread.dylib 0x217b3a1ac pthread_kill 268
2 libsystem_c.dylib 0x1d2111c8c abort 180
3 libc abi.dylib 0x217a7ab8c abort_message 132
4 libc abi.dylib 0x217a6aa80 demangling_terminate_handler() 336
5 libobjc.A.dylib 0x1c3e11d3c _objc_terminate() 144
6 libc abi.dylib 0x217a79f28 std::__terminate(void (*)()) 20
7 libc abi.dylib 0x217a79ec4 std::terminate() 56
8 libdispatch.dylib 0x1d20adff0 _dispatch_client_callout 40
9 libdispatch.dylib 0x1d20b5694 _dispatch_lane_serial_drain 672
10 libdispatch.dylib 0x1d20b61e0 _dispatch_lane_invoke 384
11 libdispatch.dylib 0x1d20c0e10 _dispatch_workloop_worker_thread 652
12 libsystem_pthread.dylib 0x217b33df8 _pthread_wqthread 288
13 libsystem_pthread.dylib 0x217b33b98 start_wqthread 8
And:
Thread 2 crashed with ARM Thread State (64-bit):
x0: 0x0000000000000000 x1: 0x0000000000000000 x2: 0x0000000000000000 x3: 0x0000000000000000
x4: 0x0000000217a7e0f5 x5: 0x000000016b4c6430 x6: 0x000000000000006e x7: 0xffffffff00000600
x8: 0xb1cfaa93a40be1da x9: 0xb1cfaa92cf4791da x10: 0x0000000000000200 x11: 0x000000000000000b
x12: 0x000000000000000b x13: 0x00000000001ff800 x14: 0x00000000000007fb x15: 0x000000008c033819
x16: 0x0000000000000148 x17: 0x000000016b4c7000 x18: 0x0000000000000000 x19: 0x0000000000000006
x20: 0x0000000000001603 x21: 0x000000016b4c70e0 x22: 0x0000000000000000 x23: 0x000000016b4c70e0
x24: 0x0000000000000000 x25: 0x0000000280c888e8 x26: 0x0000000000000114 x27: 0x0000000000000000
x28: 0x0000000283787840 fp: 0x000000016b4c63a0 lr: 0x0000000217b3a1ac
sp: 0x000000016b4c6380 pc: 0x00000002076d8200 cpsr: 0x40001000
far: 0x000000021e5abf50 esr: 0x56000080 Address size fault
I spent an entire day searching for causes surrounding these errors - there were references to this but nothing related to what I was doing. I then went back to the basics - literally:
npx create-expo-app TestApp
eas build:configure
eas build --platform ios
And loaded this into a simulator (downloaded the ipa file, changed it to a .zip file, transferred the app file to the simulator) and it immediately crashed - but that same build worked in TestFlight so apparently the hack I found to use ipa files in a simulator doesn't work.
So, I'm not sure how best to troubleshoot this other than slowly start from a barebones app, add functionality, and keep building and publishing for TestFlight. I've used various versions of expo, node, eas cli, etc - all giving me the same results.
I tried using ErrorUtils to catch an exception and send the error to my node server but that didn't work (I might have set it up wrong).
I'm not sure how to proceed in troubleshooting this. I haven't used (nor do I know how to) Xcode much outside of using the simulators. Any help would be VERY MUCH appreciated.
CodePudding user response:
After painfully starting from a bare-bones react-native expo app and adding functionality bit by bit, I found the issue was the stack navigator code. Once I had it narrowed down to that, I found this question that described the fact I missed installing the support packages necessary for stack navigation:
npm install react-native-reanimated react-native-gesture-handler react-native-screens react-native-safe-area-context @react-native-community/masked-view
And that you have to include:
import 'react-native-gesture-handler';
At the top of your App.js file - but in my case, I had two files with stack navigation so it wasn't enough to include that import just in App.js but also in that other file.
Once I did this, no more crashes!