Architectures参数的含义

Architectures

当前设备环境下支持的指令架构。真机环境下是armV7arm64。模拟器环境下是X86_64i386arm64(m1设备)

Build Active Architecture Only

是否只编译当前设备的指令架构。值是YES或者NO。一般Debug环境下,为了提高编译速度,会选择YES,表示只编译当前设备的指令架构。Release环境下,选择NO,编译所有类型设备的指令架构。

Excluded Architecture

排除的架构。排除的架构将不参与编译。例如:这里选择了arm64,编译产物将不会包含arm64指令架构。

VALID_ARCHS

用户自己设置的可用架构。这个选项在User-Defind里面,它的优先级是最高的。如果Architectures支持了很多架构,但是VALID_ARCHS只填写了一小部分,那么实际上支持的架构也是这一小部分。所以VALID_ARCHS的值一般和Architectures保持一致。

EXCLUDED_ARCHS

Xcode12release note中,VALID_ARCHS已经不推荐使用了deprecate,我们应该使用EXCLUDED_ARCHS

这个EXCLUDED_ARCHSExcluded Architecture是同一个意思,所以我们使用Excluded Architecture就好了。

当然,你继续使用VALID_ARCHS也没有什么问题。测试发现,修改VALID_ARCHS仍然会影响编译结果。