我有一个仅为英特尔架构构建的 XCode 项目,如果使用 XCode 11.7 编译,则可以在 M1 mac 上在 Rosetta 下运行而无需易位,但是如果完全相同的项目(没有任何更改)使用 XCode 12.3 编译,它会在 M1 Mac(但不是 intel Mac)上易位,并且无法运行。
XCode 11.7 编译,可在任何架构下运行,无需易位。 XCode 12.3-compiled 在 Intel 架构上运行,无需易位。 XCode 12.3-compiled 不能在 M1 架构上运行,因为它被易位。
有人知道为什么会这样吗?代码本身没有做任何应该强制易位的事情,正如使用 XCode 11.7 编译时它在 Intel 或 M1 上没有被易位所证明的那样。