我有一个使用SQLite.swift的项目。最近我买了一个MacBook Pro和一个M1芯片。之后,该项目在设备上运行良好,但当我试图在模拟器上运行时,我从Xcode获得以下错误消息:
Could not find module 'SQLite' for target 'x86_64-apple-ios-simulator'; found: arm64, arm64-apple-ios-simulator.
我使用可可荚将SQLite.swift添加到我的项目中。我试图将它移到SPM,但错误仍然存在。在搜索了这个错误之后,我发现了一项工作:用这个选项打开Xcode:Open using Rosetta,但在我看来,这似乎是一个黑客。
这能在SQLite.swift级别上得到某种程度的解决吗?
SQLite.swift版本0.13.0Xcode 13.2.1谢谢。
发布于 2022-03-17 19:19:59
您的项目正在尝试为x86_64构建,这将使其在Rosetta翻译下运行。SQLite.swift正在为arm64正确构建,并将在模拟器中的M1上本地运行。由于不匹配,整个构建失败了。你是绝对正确的,在罗塞塔下打开Xcode是一种黑客,你通过这样做支付了内存+性能的损失。
我建议检查您的ARCHS和EXCLUDED_ARCHS构建设置以及其他依赖项。如果您有一个未更新以支持模拟器arm64的二进制依赖项,这可能会导致Cocoapods将体系结构强制转换为x86_64。或者,您可能在很久以前就设置了这些构建设置,但从未实现过。
今天设置这些的正确方法是:
SUPPORTED_ARCHS
默认情况下,Xcode将使用Mac的本地架构为模拟器构建。在Debug中,它只构建一个体系结构,为了发布,它构建了所有受支持的体系结构(这取决于您的运行目标是什么)。在这方面,模拟器与设备构建没有任何不同。
发布于 2022-09-19 11:21:42
我来解决它。
在您的项目中,构建设置、体系结构:- Base : IOS -只构建活动体系结构:- Debug: Yes - platform :不排除体系结构:空支持的平台:任意平台
确保目标的构建设置是相同的。
https://stackoverflow.com/questions/71073021
复制相似问题