【问题标题】:Xcode 12: build Error on FIRAnalyticsConnectorXcode 12:在 FIRAnalyticsConnector 上构建错误
【发布时间】:2021-01-18 02:55:48
【问题描述】:

升级到 Xcode 12 后,我的项目不再为模拟器构建。

我得到的错误是:

ld: in ... /Pods/FirebaseAnalytics/Frameworks/FIRAnalyticsConnector.framework/FIRAnalyticsConnector(
FIRAnalyticsConnector_e321ed8e3db06efc9803f6c008e67a34.o), 
building for iOS Simulator, but linking in object file built for iOS, file
'.../Pods/FirebaseAnalytics/Frameworks/FIRAnalyticsConnector.framework/FIRAnalyticsConnector'
for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

一种解决方法是将arm64 添加到我的项目> 构建设置> 排除架构,但它不会为我的真实设备构建。

我已经尝试过清理构建文件夹、更新 pod 文件、重启等。

我正在使用:

  • Firebase/分析 (6.33.0)
  • Xcode 12.0.1 (12A7300)
  • CocoaPods:1.9.3

有什么想法吗?

【问题讨论】:

  • 你更新你的 pod 文件了吗?
  • @sekoyaz 是的。我使用所有依赖项的最新版本。但是我在更新之前也遇到了错误。

标签: ios xcode firebase-analytics xcode12


【解决方案1】:

好的,我终于找到了解决这个问题的方法。

对于“发布”也将“仅构建活动架构”更改为“是”。
可以在选择您的项目 >“构建设置”>“目标”(您的目标)>“架构”中找到该设置

来源和更详细的解释可以在这里找到:
https://stackoverflow.com/a/64139830/4134160

请注意,该问题与 Firebase 无关。我仍然会留下它,因为它可能会导致其他人遇到这个问题并帮助他们解决这个问题。

苹果 M1

如果您在 M1 芯片上运行,请考虑以下@Aspen 的回答: https://stackoverflow.com/a/65460729/4134160

【讨论】:

  • 这并没有解决在 Apple M1 上运行时的问题。
  • 我可以确认我在 M1 上也有这个问题
  • @themenace 是的,同样的错误信息。我认为这与芯片是 M1 arm64 的事实有关,但 pod 库本身(在本例中为 Firebase Analytics)尚未针对 M1 进行更新。我能够通过下面的回答解决问题。
  • @Aspen 我明白了。太好了,您找到了解决方案并将其添加到此处 :) 我无法验证它,因为我还没有 M1,但我相信其他人会。
  • M1 的人请查看@Aspen 的答案。
【解决方案2】:

我通过在 Rosetta (Apple M1) 下运行 xcode12 解决了这个问题。

打开 Finder -> 应用程序 -> 定位 Xcode -> 右键单击​​ -> 获取信息 -> 使用 Rosetta 检查打开。

然后重新打开 xcode。

【讨论】:

  • 请不要添加same answer to multiple questions。一旦您获得足够的声誉,就回答最好的一个并将其余的标记为重复。如果不是重复的,请根据问题调整帖子并标记以取消删除。
  • 天啊,这行得通。这是什么罗塞塔?我被她困住了。谢谢。
【解决方案3】:

在为主项目和 Pods 项目添加 arm64Excluded Architectures 后,我能够解决我在 Apple M1 上遇到的这个问题。

我还必须清除 DerivedData 文件夹并重新启动 Xcode。

欲了解更多信息,请参阅:https://medium.com/@khushwanttanwar/xcode-12-compilation-errors-while-running-with-ios-14-simulators-5731c91326e9

【讨论】:

  • 也对我有用,但我想知道在发布应用程序时这有什么缺点吗?
  • 谢谢,为我工作,但如果您可以将这些步骤直接粘贴到您的答案中,一个建议而不是链接将会很有帮助。
【解决方案4】:

我的情况有点不同。根据this Firebase engineer

FIRAnalyticsConnector 现在是 xcframework 版本的一部分 FirebaseAnalytics,不需要链接。

进入目标Build Settings(不是项目),搜索Other Linker Flags,然后从列表中删除FIRAnalyticsConnector 为我解决了这个问题。

有趣的是,当我运行 pod deintegratepod install 时,它并没有解决这个问题。

【讨论】:

    【解决方案5】:

    在运行pod install 后在Xcode v12.4 中遇到了同样的问题。

    在我的项目中进行了一些搜索后,我终于在目标的Build PhasesLink Binary With Libraries 部分找到了对它的引用。从列表中删除 FIRAnalyticsConnector.framework 解决了我的问题。

    【讨论】:

      【解决方案6】:

      最后,按照此链接https://github.com/firebase/firebase-ios-sdk/blob/CocoaPods-7.2.0/AppleSilicon.md 的说明,解决了它。

      【讨论】:

        【解决方案7】:

        从目标列表中删除 -fraemwork "FIRAnalyticsConnector" -> “构建设置” -> OTHER_LDFLAGS

        【讨论】:

          【解决方案8】:

          如果您在配备新 Macbook Pro M1 处理器的 Apple Silicone 上运行。这是一个已知问题。

          Firebase not compiling on Apple Silicone

          【讨论】:

            猜你喜欢
            • 2021-06-25
            • 1970-01-01
            • 2021-01-03
            • 1970-01-01
            • 2023-03-31
            • 2021-03-29
            • 1970-01-01
            • 2020-12-03
            • 1970-01-01
            相关资源
            最近更新 更多