Apple M1 芯片上的 Firebase 分析和其他模块

Firebase analytics and other modules on Apple M1 chip

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

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

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

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

非常感谢任何帮助

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

在 Podfile 中指定您想要的 Firebase 版本时,请将 -M1 附加到该版本。请参阅以下示例:

Explicitly require the special M1 tagged Firebase version, locked to the exact version. Note that due to the version scheme, you're required to update this manually for each release otherwise you will revert to the official release (ex. 7.2.0 instead of 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 补丁版本中。

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

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

Starting with Firebase 7.5.0, Firebase supports Apple Silicon Macs via CocoaPods. CocoaPods 1.10.0 is required.

The special M1 versions required for FirebaseAnalytics support for versions 7.2.0 through 7.4.0 are no longer necessary.

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

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

请看这个。

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

勾选 使用 Rosetta 打开选项。

立即尝试 pod install