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 框架的主要内容,如果未能解决你的问题,请参考以下文章
FBSDKCoreKit 框架,在 xCode 7 协议 FBSDKApplicationDelegate 无法识别
RestKit iOS 教程 - Xcode 无法识别 RestKit 类方法 - 缺少框架?