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

问题描述

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

只要我不通过 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”。

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

非常感谢任何帮助

解决方法

来自 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/数据库','7.2-M1'

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

,

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

Property dialog for Xcode with "Open with Rosetta" checked

,

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

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

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

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

,

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

,

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

转到应用程序文件夹->右键单击终端应用程序->获取信息

勾选使用 Rosetta 打开选项。

立即尝试while true do # or whatever command you need to run rm -rf /var/www/some-directory sleep 10 done