6

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

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

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

设置新项目以使用 AudioKit 以便识别 AudioKit 并自动完成工作的最佳实践是什么?

4

1 回答 1

6

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

这是使用 AudioKit 进行设置的一步一步。

有两点需要注意:

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

脚步:

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

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

上面的第 3 步通常是最不正确的一点。许多人期望 SRCROOT 是隐含的,并期望仅放入相对路径就足够了,但事实并非如此。必须指定 SRCROOT。

于 2017-11-13T20:38:32.277 回答