错误:预期类型 - eventDispatcher:(nonnull RCTEventDispatcher *)eventDispatcher;在 iOS 构建期间出现“未定义符号”错误
Posted
技术标签:
【中文标题】错误:预期类型 - eventDispatcher:(nonnull RCTEventDispatcher *)eventDispatcher;在 iOS 构建期间出现“未定义符号”错误【英文标题】:error: expected a type - eventDispatcher:(nonnull RCTEventDispatcher *)eventDispatcher; AND 'Undefined symbol' errors during iOS build 【发布时间】:2021-10-15 19:23:37 【问题描述】:从 RN 版本 0.63.2 升级到 0.65.0-rc.3 后无法构建 ios 应用。我收到此错误:
在 /Users/.../ReactNativeProjects/.../node_modules/react-native-gesture-handler/ios/RNGestureHandlerManager.m:1 包含的文件中: /Users/.../ReactNativeProjects/.../node_modules/react-native-gesture-handler/ios/RNGestureHandlerManager.h:9:52:错误:预期类型 eventDispatcher:(nonnull RCTEventDispatcher *)eventDispatcher;
问题出在 RNGestureHandlerManager.h 中,在下面一行:
- (nonnull instancetype)initWithUIManager:(nonnull RCTUIManager *)uiManager
eventDispatcher:(nonnull RCTEventDispatcher *)eventDispatcher;
当我升级到 RNGestureHandler 版本 1.10.3 时,我收到以下错误:
未定义符号:OBJC_CLASS$_RCTScrollView
未定义符号:OBJC_METACLASS$_RCTViewManager
未定义符号:OBJC_CLASS$_RCTEventEmitter
未定义符号:__RCTNotImplementedException
未定义符号:_RCTGetUIManagerQueue
未定义符号:OBJC_CLASS$_RCTConvert
未定义符号:_RCTRegisterModule
未定义符号:_RCTDefaultLogFunction
未定义符号:OBJC_CLASS$_RCTRootView
未定义符号:OBJC_METACLASS$_RCTEventEmitter
未定义符号:OBJC_CLASS$_RCTTouchHandler
未定义符号:OBJC_CLASS$_RCTViewManager
未定义符号:__RCTLogNativeInternal
我在 github 页面上提交问题已经 3 天了,但团队没有回复。我真的很感激任何帮助。欢迎任何想法!这真的开始困扰我了。
这是我在 github 上创建的问题的链接:https://github.com/software-mansion/react-native-gesture-handler/issues/1543
非常感谢...
【问题讨论】:
【参考方案1】:好的。经过几天的阅读/挖掘并尝试了许多不同的解决方案,这就是我修复它的方法。
1- 在RNGestureHandlerManager.h
中添加了下面的import语句
#import <React/RCTEventDispatcher.h>
当我尝试重新构建应用程序时,这会产生相同的 Undefined symbol
错误,就像我将 RNGestureHandler 版本更新到 1.10.3 一样(请参阅问题中的红色错误消息)。
2- 这是关键部分。
我检查了主项目目标的Build Settings
下的“ONLY_ACTIVE_ARCH”设置。调试和发布模式都是“是”。
然后我检查了Pods
项目中RNGestureHandler
包的相同设置。就我而言,调试是 YES,发布是 NO。我试图在发布模式下构建应用程序,因此我将 RNGestureHandler
包的发布模式的此设置更改为 YES。
然后我尝试再次构建我的应用程序。这次 RNGestureHandler 包的Undefined symbol
错误消失了。类似的消息开始出现在其他包中。我对创建这些Undefined symbol
错误的所有包进行了相同的设置更新,最后,我的应用程序在发布模式下成功构建!希望这会有所帮助。
【讨论】:
【参考方案2】:react-native-gesture-handled 库已升级并包含修复,因此升级库将修复它。
【讨论】:
这并没有提供问题的答案。要批评或要求作者澄清,请在他们的帖子下方留下评论。 - From Review ...你显然不明白我的回答是一个答案....虽然我已经提到了上面的帖子...以上是关于错误:预期类型 - eventDispatcher:(nonnull RCTEventDispatcher *)eventDispatcher;在 iOS 构建期间出现“未定义符号”错误的主要内容,如果未能解决你的问题,请参考以下文章
#yyds干货盘点#three.js源码解读-EventDispatcher
我收到错误错误类型参数一元减号和预期';'在 ':' 标记之前