我有一个庞大的iOS库,它支持真实设备(arm64…(和英特尔Mac的iOS模拟器(x86_64(。但当我换成M1 mac时,事情变得很艰难。
如果我使用旧库,我将失败,并错误地说xxx.a (xxx.o) building for iOS Simulator, but linking in object file built for iOS, file 'xxx' for architecture arm64
。我似乎必须构建一个xcframework,其中包含用于不同目的地的二进制文件。
因此,我尝试构建不同的切片,并希望将它们捆绑成一个xcframework。但我最终发现我不知道如何用M1 Mac构建x86_64切片。
我的问题是
- 如何在M1 mac上构建一个支持英特尔mac iOS模拟器的静态库
- 还是我的想法从一开始就错了
我未能在M1 Mac上获得x86_64切片的原因是我的构建设置中有一个遗留选项:有效架构。
删除此配置并运行标准流。然后您将顺利获得包含x8_64体系结构的库。
xcodebuild archive --destination="generic/platform=iOS Simulator" ...
如果您的库代码不是作为Xcode项目组织的,而是在下面使用clang工具链。您可以参考此链接。简而言之,以arm64-apple-ios14.3模拟器这样的格式指定目标