XCode 无法识别引用的 AudioKit 框架

Posted

技术标签:

【中文标题】XCode 无法识别引用的 AudioKit 框架【英文标题】:Referenced AudioKit framework is not recognized by XCode 【发布时间】:2017-11-13 20:38:32 【问题描述】:

当我创建一个引用(而不是 CocoaPods 等)AudioKit 框架之一的新 XCode 项目时,XCode 不会自动完成 AudioKit 声明并显式声明 AudioKit 对象(例如 AKMIDISampler)会导致构建错误:' AKMIDISampler' 不可用:找不到此类的 Swift 声明。

通常问题在于在 XCode 中正确输入框架搜索路径。但是,即使我为我的目标和项目都设置了一个框架的相对路径,我仍然得到相同的结果。

这很可能是所有 3rd 方框架的问题,但我在这里参考 AudioKit 提出这个问题,因为我之前在 Google 的 AudioKit 支持小组中看到过这个问题。

设置新项目以使用 AudioKit 以使 AudioKit 被识别并自动完成工作的最佳做​​法是什么?

【问题讨论】:

【参考方案1】:

我已经制定了解决方案,并将其发布在此处以供将来参考。

这是使用 AudioKit 进行设置的分步说明。

需要注意的两点:

    此解决方案是使用 XCode 9.1 发布的。 此解决方案中使用的 AudioKit 框架是从 http://audiokit.io/downloads/ 下载的预构建二进制文件。我已将它们放在一个库文件夹中,距我保存项目的位置高 2 个文件夹。

步骤:

    在 XCode 中创建一个新项目 选择适当的目标并在 Embedded Binaries 下选择“+”。选择“添加其他...”并导航到正确的 AudioKit 框架。我未选中“复制项目”,以便在框架发生更改时可以在硬盘驱动器上的一个位置更新框架。我还选择了“创建组”而不是文件夹引用,但我不确定这是否适用于解决方案。 选择构建设置并转到框架搜索路径。对于目标,将 $(inherited) 作为搜索路径。对于项目,输入 $(SRCROOT)/。对我来说,这看起来像 $(SRCROOT)/../../_Libraries/AudioKit-ios

现在您可以导入 AudioKit 并且声明应该会解析。

上面的第 3 步通常是最容易出错的地方。许多人期望 SRCROOT 是隐含的,并期望仅放入相对路径就足够了,但事实并非如此。必须指定 SRCROOT。

【讨论】:

在 AudioKit 文档中,我们被指示将框架拖放到链接框架和库下的项目中。这可能会导致自动包含搜索路径,但在我的情况下它没有,这个答案修复了它。

以上是关于XCode 无法识别引用的 AudioKit 框架的主要内容,如果未能解决你的问题,请参考以下文章

红色的 Pods 框架(Xcode 无法识别)

XCode 3.2.6 无法识别 Cg 框架

FBSDKCoreKit 框架,在 xCode 7 协议 FBSDKApplicationDelegate 无法识别

RestKit iOS 教程 - Xcode 无法识别 RestKit 类方法 - 缺少框架?

Audiokit 4.9.5 在 xcode 11.4 + swift 5.2 中崩溃,没有有用的错误消息

AudioKit - 获取特定频率的问题(高于 20kHz)