XCode 无法识别引用的 AudioKit 框架

Referenced AudioKit framework is not recognized by XCode

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

的 Swift 声明

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

这可能是所有第 3 方框架的问题,但我在这里询问 AudioKit,因为我之前在 Google 的 AudioKit 支持组中看到过这个问题。

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

我已经找到解决方案并将其张贴在这里以供将来参考。

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

注意两点:

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

步骤:

  1. 在XCode
  2. 中创建一个新项目
  3. Select 适当的目标,在嵌入式二进制文件下,​​select '+'。选择 'Add Other...' 并导航到正确的 AudioKit 框架。我不选中 'Copy Items',这样当框架发生变化时,我可以在我的硬盘上的一个位置更新框架。我还 select 'Create groups' 而不是文件夹引用,但我不确定这是否会影响解决方案。
  4. Select 构建设置并转到框架搜索路径。对于目标,将 $(inherited) 作为您的搜索路径。对于项目,将 $(SRCROOT)/.对我来说,这看起来像 $(SRCROOT)/../../_Libraries/AudioKit-iOS

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

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