升级至Expo SDK 49后,通过EAS Update分发的托管应用启动时崩溃求助
升级至Expo SDK 49后,通过EAS Update分发的托管应用启动时崩溃求助
我最近把托管的Expo应用升级到了SDK 49,本地运行一切正常,但通过EAS Update推送到Expo Go后,应用一启动就崩溃。已经折腾3天还是找不到解决办法,真心求大家帮忙!
我的环境信息:
eas-cli/3.17.1 darwin-arm64 node-v18.17.0
捕获到的错误日志
我用XCode的Console app抓取了崩溃时的日志,主要有三条:
Expo Go RangeError: Maximum call stack size exceeded (native stack depth), js engine: hermes
2. ``` Expo Go Invariant Violation: "main" has not been registered. This can happen if: Metro (the local dev server) is run from the wrong folder. Check if Metro is running, stop it and restart it in the current project. A module failed to load due to an error and AppRegistry.registerComponent wasn't called., js engine: hermes
Expo Go NSInvalidArgumentException: -[EXReactAppExceptionHandler handleFatalJSExceptionWithMessage:stack:exceptionId:extraDataAsJSON:]: unrecognized selector sent to instance 0x281fa8380
查资料后我意识到第一条`RangeError`应该是根源,后面两条都是它引发的连锁问题,大概率是某个依赖在更新后出问题了。 ## 已尝试的排查步骤 - **怀疑react-native-reanimated**:因为看到相关的讨论,我尝试降级到之前用的2.14.4版本,但本地运行直接崩溃,报错:
TypeError: _ReanimatedModule.default.createNode is not a function (it is undefined), js engine: hermes
同样跟着出现了"main"未注册的错误。 - **预构建后用XCode运行**:执行`npx expo prebuild -p ios`后用XCode启动,一开始正常,但几次运行后突然崩溃,报错:
ReanimatedError: Maximum call stack size exceeded (native stack depth). , js engine: reanimated
- **切换JS引擎到JSC**:结果只得到了更没用的日志,完全找不到排查方向。 - **尝试修复后验证**:我以为两次找到了解决办法,但第二天推新的EAS Update后又崩溃了,完全没有一致性,心态真的崩了... ## 补充说明 从可正常运行的版本到崩溃版本,我只修改了package.json里的依赖(就是升级SDK 49时的依赖变更),没有改动任何业务代码。 真心希望有大佬能指点一下,我现在实在没头绪了😭 备注:内容来源于stack exchange,提问作者Sagi8767
相关产品推荐
相关产品推荐

