Cordova - 架构 x86_64 的未定义符号

Posted

技术标签:

【中文标题】Cordova - 架构 x86_64 的未定义符号【英文标题】:Cordova - Undefined symbols for architecture x86_64 【发布时间】:2017-06-12 15:48:05 【问题描述】:

我正在使用 Cordova 运行 cordova build ios 并收到此错误:

Undefined symbols for architecture x86_64: "_OBJC_CLASS_$_ESUserInfoResponse", referenced from: l_OBJC_$_CATEGORY_ESUserInfoResponse_$_TMConvenience in TicketmasterSDK(ESUserInfoResponse+TMConvenience.o) "_OBJC_CLASS_$_ESConfig", referenced from: objc-class-ref in TicketmasterSDK(TMExperienceController.o) "_OBJC_CLASS_$_ESProductInfoResponse", referenced from: l_OBJC_$_CATEGORY_ESProductInfoResponse_$_Convenience in TicketmasterSDK(ESProductInfoResponse+Convenience.o) "_OBJC_CLASS_$_ExperienceSDK", referenced from: objc-class-ref in TicketmasterSDK(TMExperienceController.o) "_OBJC_CLASS_$_ESUserInfo", referenced from: objc-class-ref in TicketmasterSDK(TMExperienceController.o) ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

我关注了这个问题:Undefined symbols for architecture x86_64 on Xcode 6.1 主要的 .h 和 .m 由 Cordova 生成,我正在使用 Swift 作为自定义插件。

它在打开 Xcode 工作区并在模拟器中运行时构建并运行,但在通过 Cordova 编译时出错。如何解决此问题以及如何了解 Cordova 如何为 iOS 原生构建?

【问题讨论】:

你解决了吗?我在这里面临同样的问题。 【参考方案1】:

您的某些文件可能从项目中丢失。如果您将自定义代码添加到 AppDelegate.m 文件,然后在 xCode 中打开项目,单击名为 Navigator 的第一个选项卡,Rt 单击 Classes 文件夹,然后选择“将文件添加到 [项目]”。添加您在其中引用的缺失文件,然后点击构建。它现在应该可以工作了。它对我有用!

【讨论】:

以上是关于Cordova - 架构 x86_64 的未定义符号的主要内容,如果未能解决你的问题,请参考以下文章

编译时 x86_64 的未定义符号

Cordova 无法使用 x86_64 lib 文件夹构建 APK

架构 x86_64 的重复符号

Xcode 5.1:移除 x86_64 架构

警告“将架构 arm64 映射到 x86_64”是啥意思?

架构 x86_64 / i386 的未定义符号