react-native-intercom引发神秘错误-体系结构x86_64的未定义符号

时间:2018-08-09 13:55:33

标签: ios xcode react-native linker-errors intercom-ios

我正在使用react-native-intercom插件以及使用手动链接的最新对讲ios库。

该项目在链接阶段之前一直很好构建,然后引发此错误。

我已经完成了对讲机手动链接过程中描述的所有步骤,包括在构建设置中将strip框架脚本添加为运行脚本阶段。

这是它引发的错误消息。

undef: _OBJC_CLASS_$_ICMCompany
undef: _OBJC_CLASS_$_ICMUserAttributes
undef: _IntercomUnreadConversationCountDidChangeNotification
undef: _OBJC_CLASS_$_Intercom
Undefined symbols for architecture x86_64:
   "_OBJC_CLASS_$_ICMCompany", referenced from:
  objc-class-ref in libRNIntercom.a(IntercomUserAttributesBuilder.o)
  "_OBJC_CLASS_$_ICMUserAttributes", referenced from:
  objc-class-ref in libRNIntercom.a(IntercomUserAttributesBuilder.o)
  "_IntercomUnreadConversationCountDidChangeNotification", referenced 
from:
  ___48-[IntercomEventEmitter handleUpdateUnreadCount:]_block_invoke in libRNIntercom.a(IntercomEventEmitter.o)
  -[IntercomEventEmitter constantsToExport] in libRNIntercom.a(IntercomEventEmitter.o)
  -[IntercomEventEmitter supportedEvents] in libRNIntercom.a(IntercomEventEmitter.o)
  -[IntercomEventEmitter startObserving] in libRNIntercom.a(IntercomEventEmitter.o)
 "_OBJC_CLASS_$_Intercom", referenced from:
  objc-class-ref in AppDelegate.o
 (maybe you meant: _OBJC_CLASS_$_IntercomUserAttributesBuilder, 
 _OBJC_CLASS_$_IntercomWrapper , _OBJC_CLASS_$_IntercomEventEmitter )
 ld: symbol(s) not found for architecture x86_64
 clang: error: linker command failed with exit code 1 (use -v to see 
 invocation)

我认为它与项目支持的框架架构有关,但是我是iOS版本的新手,并且不知道如何解决此问题。

1 个答案:

答案 0 :(得分:2)

Intercom installation期间,有一个步骤添加“运行脚本阶段”

bash "${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}/Intercom.framework/strip-frameworks.sh"

您需要确保实际执行此阶段。

尝试使用无效的路径,例如/Intercom.framework/foo/strip-frameworks.sh,如果构建过程没有由于上述更改而出错,则说明其他地方存在问题,您需要确保已正确执行了其他安装步骤。

只要此脚本运行,它将正确剥离框架。

也花了我一段时间,但我能够用这种方式对其进行调试,并最终使其与12.3.0一起使用。