为什么 iOS Simulator 的构建目标是 Apple Silicon Mac 上的 x86_64?

Can*_*ğlu 6 xcode rosetta ios ios-simulator xcode15

我最近不得不引入一个在模拟器上不支持 arm64 的库(GoogleMLKit,使用 Pods)。

  • 我可以完美地为 iPhone 设备(arm64)构建。
  • 我可以为 Rosetta iPhone 模拟器(从“产品”>“目标”>“目标架构”>“显示两者”)构建 x86_64,尽管我不想在模拟下运行。

如果我尝试在arm64(非Rosetta)上构建模拟器,Xcode会给出从新添加的Google库及其依赖项引用的x86_64的链接器错误。

  • 为什么它首先要在 Apple Silicon Mac 上针对 arm64 模拟器构建 x86_64?
  • 为什么它可以完美地为 iPhone(即 arm64)编译,但在链接(仍然不知道为什么)我的应用程序的 x86_64 版本时却无法为 iOS 模拟器编译?- 为什么在为 Rosetta 构建时可以编译 x86_64,但在非 Rosetta 上编译 x86_64 失败?

最重要的是:

  • 我怎样才能摆脱所有 x86_64 并只为 arm64 构建,这是我需要为模拟器和 iOS 设备构建的唯一架构?

我尝试在 podfile 中排除 pod 的 arm64 和/或 x86_64,但无济于事。

我使用的是 Xcode 15.0.1。