无法在 Apple Silicon 上使用 iOS 模拟器对 iOS 设备的 lipo arm64 .a 文件

Cannot lipo arm64 .a files of iOS device with iOS simulator on Apple Silicon

Shell命令如下,

$ lipo -info libyuv-device.a
Architectures in the fat file: device/libyuv.a are: armv7 arm64
$ lipo -info libyuv-simulator.a
Architectures in the fat file: simulator/libyuv.a are: arm64 x86_64
$ lipo -create libyuv-device.a libyuv-simulator.a -output libyuv.a
fatal error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/lipo: libyuv-device.a and libyuv-simulator.a have the same architectures (arm64) and can't be in the same fat output file

如何将 iOS 设备和 iOS 模拟器(在 Apple Silicon 上,例如 M1)的多个 arm64 .a 文件 lipo 成一个 .a 文件?

我认为你应该输出一个 XCFramework。

1 - 使用 lipo 像您一样按平台组合架构。

2 - 然后使用 xcodebuild -create-framework 组合平台。

xcodebuild -create-framework -library libyuv-device.a -library libyuv-simulator.a -output libyuv.xcframework