我使用的是英特尔x64机器xcode 12.4 macOS catalina。有一个项目是C/C++项目,它输出一个dylib。在Xcode12.4中,构建设置“架构”是Apple Silicon & Intel。
Build active architecture Only为No。

dylib构建得很好,但是当我检查它是否是一个通用库时,它显示在x64上,而不是arm上。

发布于 2021-12-01 15:57:37
我注册只是为了发布一个答案,因为我自己也花了几个小时解决同样的问题。在“构建选项”下有一个设置“允许多平台构建”,它应该被打开。它为我做到了这一点,现在它编译了一个“胖”dylib。令人困惑的是,对于捆绑包,它编译通用二进制文件时将此设置设置为off,但对于dylib却没有。
发布于 2022-01-22 19:05:09
我刚刚用一个类似的场景解决了我的问题,但有一个应用程序目标。我已经将一个FCPX项目(在XcodeV10.*上创建)复制到一个新项目中,该项目旨在支持'arm64‘和x86_64’。因为我使用的是*.xcconfig设置,所以我没有预料到会出现任何问题--但是,果然,arm64并没有构建,因为VALID_ARCHS的一个“流浪”设置将目标限制为x86_64。但是Xcode 12.2不再在ui中显示"Valid Architecture“设置(这是我困惑的根源)。无论如何,我首先通过在*.xcconfig文件中添加一个VALID_ARCHS设置(包括arm64)来修复我的问题。最终的解决方案是编辑project.pbxproj文件,并丢弃VALID_ARCHS设置。
https://stackoverflow.com/questions/66078178
复制相似问题