首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQLite.swift和M1芯片及模拟器

SQLite.swift和M1芯片及模拟器
EN

Stack Overflow用户
提问于 2022-02-10 22:24:01
回答 2查看 319关注 0票数 1

我有一个使用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.0
  • Xcode 13.2.1

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-03-17 19:19:59

您的项目正在尝试为x86_64构建,这将使其在Rosetta翻译下运行。SQLite.swift正在为arm64正确构建,并将在模拟器中的M1上本地运行。由于不匹配,整个构建失败了。你是绝对正确的,在罗塞塔下打开Xcode是一种黑客,你通过这样做支付了内存+性能的损失。

我建议检查您的ARCHS和EXCLUDED_ARCHS构建设置以及其他依赖项。如果您有一个未更新以支持模拟器arm64的二进制依赖项,这可能会导致Cocoapods将体系结构强制转换为x86_64。或者,您可能在很久以前就设置了这些构建设置,但从未实现过。

今天设置这些的正确方法是:

SUPPORTED_ARCHS

  • Unless或
  1. 您有一个没有更新的二进制依赖关系,不要设置EXCLUDED_ARCHS或

默认情况下,Xcode将使用Mac的本地架构为模拟器构建。在Debug中,它只构建一个体系结构,为了发布,它构建了所有受支持的体系结构(这取决于您的运行目标是什么)。在这方面,模拟器与设备构建没有任何不同。

票数 1
EN

Stack Overflow用户

发布于 2022-09-19 11:21:42

我来解决它。

在您的项目中,构建设置、体系结构:- Base : IOS -只构建活动体系结构:- Debug: Yes - platform :不排除体系结构:空支持的平台:任意平台

确保目标的构建设置是相同的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71073021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档