我在我的 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”。
你们中有人知道我能做什么吗?
非常感谢任何帮助
答案 0 :(得分:3)
来自 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 补丁版本中合并。
答案 1 :(得分:1)
选中“使用 Rosetta 打开”选项(如下面的屏幕截图所示)帮助我解决了这个问题。错误消失后,您可以在没有 Rosetta 的情况下切换回并打开 Xcode。
答案 2 :(得分:1)
您不再需要根据 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
答案 3 :(得分:0)
试试这个:
在你的根
sudo arch -x86_64 gem install ffi
cd 到您的项目文件夹和
arch -x86_64 pod install
答案 4 :(得分:0)
请看一下这个。 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
。