通过 CocoaPods 添加 AudioKit 后链接错误

Linking Errors after adding AudioKit via CocoaPods

我开发了一个简单的应用程序,可以在图表中显示实时音频信号。
我通过 CocoaPods 安装了 AudioKit

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '13.4'
pod 'AudioKit', '=5.0.b1'

一切正常,现在我想将此功能集成到其他应用程序中。
这就是我的问题开始的地方。一旦我将 AudioKit pod 广告到我的其他项目,我就会收到链接错误。我什至还没有在我的代码中使用 AudioKit。我只是编辑我的 Podfile 并使用 pod update.

这是我得到的:

Undefined symbols for architecture x86_64: "_swiftoverride_class_getSuperclass(swift::TargetMetadataswift::InProcess const*)", referenced from: swift::swift50override_conformsToProtocol(swift::TargetMetadataswift::InProcess const*, swift::TargetProtocolDescriptorswift::InProcess const*, swift::TargetWitnessTableswift::InProcess const* ()(swift::TargetMetadataswift::InProcess const, swift::TargetProtocolDescriptorswift::InProcess const*)) in libswiftCompatibility50.a(ProtocolConformance.cpp.o) "swift::swift51override_conformsToSwiftProtocol(swift::TargetMetadataswift::InProcess const*, swift::TargetProtocolDescriptorswift::InProcess const*, llvm::StringRef, swift::TargetProtocolConformanceDescriptorswift::InProcess const* ()(swift::TargetMetadataswift::InProcess const, swift::TargetProtocolDescriptorswift::InProcess const*, llvm::StringRef))", referenced from: _Swift50Overrides in libswiftCompatibility50.a(Overrides.cpp.o) ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

从我的 Podfile 中删除 AudioKit 并更新后,一切又恢复正常了。
我唯一使用的另一个 pod 是 this SideMenu。

我的规格:
MacBook Pro 13(2019,Big Sur 11.1,i5 1.4 GHz)
Xcode12.3 (12C33)
CocoaPods 1.9.1

检查目标设置中的构建阶段选项卡。 如果您看到一个 运行-script 阶段,其中的脚本会从您的框架中删除架构(这很常见),请确保它 运行s 在“嵌入 Pods 框架”构建阶段之前.

另外,附上脚本代码

if [[ "$CONFIGURATION" == "Release" ]]; then
 [Original script]
fi

您可能想尝试切换到版本 5.0.b2 而不是 b1 - 它是最近更新的,旧的二进制文件可能与 Xcode 12.

有问题

您还应该升级到最新的 CocoaPods - 需要版本 1.10 或更高版本才能正确支持 XCFramework,这是 AudioKit pod 使用的。