6

编辑(2020/09/14):这似乎是一个 Xcode 错误,现在已从 Xcode 12 beta 6 修复。

我正在使用 Xcode 12 来构建一个静态库,对于 tvOS,Xcode 12 包括arm64arm64e在单个 fat 库中。

同样,在为模拟器构建时,Xcode 12 将x86_64arm64(Mac Apple Silicon)都包含在单个胖库中。

在这两种情况下,我都无法使用以下命令创建包含这些库的 XCFramework:

xcodebuild -create-xcframework -output A.xcframework" -library A.a

尝试这样做会导致错误

error: unable to find any architecture information in the binary at 'A.a'

输出lipo -info A.a清楚地表明两种架构都存在(分别是arm64+arm64earm64+ x86_64),所以我不明白为什么xcodebuild不能识别和处理它。

我还尝试将各个架构分别提取到两个瘦文件中(例如A-arm64.aA-arm64e.a),然后使用这些文件创建 XCFramework,但这会导致不同的错误:

Both tvos-arm64e and tvos-arm64 represent two equivalent library definitions.

Both tvos-arm64-simulator and tvos-x86_64-simulator represent two equivalent library definitions.

我错过了什么吗?如何从胖库(或两个等效的瘦库)创建 XCFramework?

4

1 回答 1

0

这似乎是一个 Xcode 错误,现在已在 Xcode 12 beta 6 中修复。

于 2021-05-31T15:09:45.753 回答