架构的未定义符号 x86_64:“_OBJC_CLASS_$_CMMotionManager”,引用自:GooglePlus 中的 objc-class-ref(GPPSpamSignal.o)

Undefined symbols for architecture x86_64: "_OBJC_CLASS_$_CMMotionManager", referenced from: objc-class-ref in GooglePlus(GPPSpamSignal.o)

你好,我有一个人开发的项目。它具有 G+、FB 集成。当我得到项目并尝试 运行 它时,它给了我这个错误。我该如何解决这个问题?请帮助我。

Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_CMMotionManager", referenced from:
  objc-class-ref in GooglePlus(GPPSpamSignal.o)
 ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

谢谢

未定义的符号通常意味着您缺少导入语句。 看起来你正在使用 CMMotionManager 是 CoreMotion 的一部分,因此您可能需要:

#import <CoreMotion/CoreMotion.h>

并确认您已将 CoreMotion 添加到您的项目

您似乎正在使用 GooglePlus SDK,而该 SDK 不支持 arm64 架构。您需要一个支持 arm64 架构的更新 SDK。确保您有最新的副本。

我通过简单地将 .h.m 文件添加到项目来设法调用这个邪恶的错误。

我通过删除它们解决了这个问题,然后右键单击该项目,单击“新建文件”,然后选择一个新的 iOS Cocoa 触摸 class。

之后,我将相关代码复制到各自的.h.m文件中。这样做可以正确链接文件

由于 CMMotionManager 是 CoreMotion 框架的一部分,只需在 Xcode 中的构建中将框架包含在 "target" 的构建阶段中:"link with":添加“+”"CoreMotion.framework"

CMMotionManager 是 CoreMotion.framework 的一部分。
在 Xcode 11.3 中,TARGETS > Frameworks, Libraries, and Embedded Content > 单击添加按钮“+”,添加 CoreMotion.framework。
图片在下面。