【问题标题】:Firebase analytics and other modules on Apple M1 chipApple M1 芯片上的 Firebase 分析和其他模块
【发布时间】:2021-04-07 19:38:02
【问题描述】:

我在我的 Apple M1 MacBook Pro 上使用 Xcode 12.3 和 Cocoapod 1.10.0 在我的 SwiftUI 2 应用程序中使用 Firebase 和 SDWebImageSwiftUI 模块。

只要我不通过 Cocoapod 集成 Firebase Analytics 模块,该应用程序就可以正常工作,但是当我集成它时,我会遇到与这里的人相同的错误:Xcode 12, building for iOS Simulator, but linking in object file built for iOS, for architecture arm64。他的解决方案也适用于我(不包括项目和 pod 的 arm64 架构)。

但是现在 SDWebImageSwiftUI 模块(通过 swift 包管理器包含)抱怨“找不到目标 'x86_64-apple-ios-simulator' 的模块 'SDWebImageSwiftUI';找到:arm64,arm64-apple-ios-simulator”。如果我通过 Cocoapod 包含模块,那么编译器会说“没有这样的模块”SDWebImageSwiftUI”。

你们中有人知道我能做什么吗?

非常感谢任何帮助

【问题讨论】:

标签: ios xcode cocoapods firebase-analytics sdwebimage


【解决方案1】:

来自https://github.com/firebase/firebase-ios-sdk/blob/master/AppleSilicon.md的说明:

在 Podfile 中指定您希望使用的 Firebase 版本时,请将 -M1 附加到版本中。请参阅以下示例:

明确要求带有 M1 标记的特殊 Firebase 版本,并锁定到确切的版本。笔记 由于版本方案,您需要为每个版本手动更新,否则 您将恢复到正式版本(例如 7.2.0 而不是 7.2.0-M1)。

pod 'Firebase/Analytics'、'7.2-M1'

对使用的任何其他 Firebase pod 执行相同操作。

pod 'Firebase/Database', '7.2-M1'

记住:现在您需要手动添加 -ObjC 以避免运行时崩溃。此 CocoaPods 问题已在 CocoaPods/CocoaPods#10234 中修复,并已合并到即将发布的 CocoaPods 1.10.1 补丁版本中。

【讨论】:

  • 太好了,这让我可以再次编译应用程序,但现在如果我使用任何分析日志记录功能,例如Analytics.logEvent("Dashboard clicked", parameters: nil),我收到错误“由于未捕获的异常 'NSInvalidArgumentException' 导致应用程序终止,原因:'-[Swift.__SharedStringStorage apm_UTF32Length]:无法识别的选择器发送到实例 0x6000030c4150'”跨度>
  • 查看关于在构建设置中将 -ObjC 选项添加到其他链接器标志以解决 CocoaPods 错误的完整说明,该错误修复将在 1.10.1 版本中提供。跨度>
  • 我按照 GitHub 上的说明操作,并将 swift 包管理器也用于 Firebase 模块,因此实际上不会出现问题,因为我不再使用 Cocoapods。你知道还有什么问题吗?
  • 对于 CocoaPods 和 Swift PM,需要将 FirebaseAnalytics -ObjC 添加到链接器选项中
【解决方案2】:

选中“使用 Rosetta 打开”选项(如下面的屏幕截图所示)帮助我解决了这个问题。错误消失后,你可以在没有Rosetta的情况下切换回去打开Xcode。

【讨论】:

    【解决方案3】:

    您不再需要根据 Firebase 的更新附加 M1。您可以在链接上查看以获取更多说明。

    从 Firebase 7.5.0 开始,Firebase 通过 CocoaPods 支持 Apple Silicon Mac。需要 CocoaPods 1.10.0。

    不再需要 FirebaseAnalytics 支持 7.2.0 到 7.4.0 版本所需的特殊 M1 版本。

    https://github.com/firebase/firebase-ios-sdk/blob/master/AppleSilicon.md

    【讨论】:

      【解决方案4】:

      试试这个: 在你的根 sudo arch -x86_64 gem install ffi cd 到您的项目文件夹和 arch -x86_64 pod install

      【讨论】:

        【解决方案5】:

        请看一下这个。 https://stackoverflow.com/a/68037246/4862289

        转到Application文件夹 -> 右键单击​​Terminal App -> Get Info

        勾选Open with Rosetta选项。

        现在试试pod install

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2022-01-06
          • 2022-11-29
          • 1970-01-01
          • 2021-04-10
          • 2022-08-16
          • 1970-01-01
          • 2021-02-23
          相关资源
          最近更新 更多