【问题标题】:Undefined symbols for architecture arm64: "_OBJC_CLASS_$_Twitter",架构 arm64 的未定义符号:“_OBJC_CLASS_$_Twitter”,
【发布时间】:2018-06-02 03:14:12
【问题描述】:
Undefined symbols for architecture arm64:
  "_OBJC_CLASS_$_Twitter", referenced from:
      objc-class-ref in FirebaseTwitterAuthUI(FUITwitterAuth.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我在构建项目时遇到了这个错误。

知道如何解决这个问题吗?

【问题讨论】:

  • 我在一个新项目中看到了同样的问题 - 将 FirebaseUI 添加到 pod 文件现在无法链接到上述错误。你解决问题了吗?
  • @AshleyMills 是的。在这里查看github.com/firebase/FirebaseUI-iOS/issues/378
  • 太棒了,解决了 - 谢谢!

标签: ios xcode linker-errors


【解决方案1】:

错误说明: 该错误表明编译器在为 arm64 架构构建 FirebaseTwitterAuthUI 时无法找到 Twitter 类。这是因为架构设置。

从 Build Settings 中检查 Build Active Architectures Only 设置。确保您的应用程序目标cocoapods目标这应该相同

如果您仍然遇到问题,请发布带有构建设置的 Xcode 屏幕截图。

目标 -> 构建设置 -> 仅构建活动架构。

Build Active Architecture flag => Yes 表示只为选定的模拟器架构构建当前应用。这将使构建速度更快。

Build Active Architecture flag => No 表示为所有架构构建当前应用。

因此,如果您有多个具有不同选项的目标,您将能够得到这种错误。

Build Active Architecture 标志 => 是用于调试,=> 否用于发布模式。

检查这个:_OBJC_CLASS_$_FIRPhoneAuthProvider", referenced from: objc-class-ref in LoginVC.o Getting this error

【讨论】:

  • Build Active Architectures Only 设置在哪里?
  • 我检查了应用程序目标和 cocoapods 目标的所有设置都是相同的。 Yes 用于调试,No 用于发布
  • 上传 Firbase 和 Twitter 项目设置的截图。
  • 它似乎是一个捆绑目标。给我看看所有 cocoapods 的目标?
【解决方案2】:

检查您要导入的框架是否定义了该架构:

在终端运行:

lipo -信息

输出应该是这样的:arm64 armv7 armv7s

如果没有, 1. 你的图书馆是错误的,缺少那个架构 2.您的构建设置不包括该架构 3.你没有正确链接库

【讨论】:

    猜你喜欢
    • 2018-05-23
    • 2022-01-13
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 2018-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多