iOS 11 + Xcode 9.0 = 无音频单元

Posted

技术标签:

【中文标题】iOS 11 + Xcode 9.0 = 无音频单元【英文标题】:iOS 11 + Xcode 9.0 = No Audio Units 【发布时间】:2017-09-21 12:04:49 【问题描述】:

ios 11 中需要有关音频单元的帮助。我有两个 iOS 应用程序:一个提供 V3 音频单元的应用程序和一个音频单元的主机应用程序。问题是,当我使用 iOS 11 SDK 在 Xcode 9.0 中编译主机应用程序并在装有 iOS 11 的 iPhone 上运行它时,主机应用程序看不到音频单元

我做了一些研究,结果如下: 该问题会影响任何音频单元应用程序,而不仅仅是这两个特定的应用程序。如果您使用 Apple 网站 (https://developer.apple.com/library/content/samplecode/AudioUnitV3Example/Introduction/Intro.html) 中的 AudioUnitV3Example 项目,您可以很容易地看到同样的问题。此示例项目包含两个应用程序:iOSAUv3Host 和提供音频单元应用程序扩展的 iOSFilterDemoApp。您需要在 iOS 设备上安装这两个应用程序。

当您启动 AUv3Host 应用程序时,它会显示系统中所有可用音频单元的列表:

在 iOS 10 上,有 16 个音频单元可用 — 15 个默认音频单元 由 Apple 提供,以及由 Demo 提供的 FiltedDemo 音频单元。 在 iOS 11 上,只有 15 个音频单元 — 15 个默认音频单元 苹果。 AUv3Host 应用程序看不到 FiltedDemo 音频单元(请参阅 截图)。

我还下载了带有 iOS 10 SDK 的 Xcode 8.3.3(来自https://developer.apple.com/download/more/),并尝试了构建 SDK 和设备 iOS 版本的所有可能配置。这是我得到的:

FiltedDemo 由 iOS 11 SDK + AUv3Host 由 iOS 11 SDK + iOS 11 设备构建 = BAD (No FiltedDemo) FiltedDemo 由 iOS 10 SDK + AUv3Host 由 iOS 11 SDK + iOS 11 设备构建 = BAD (No FiltedDemo) FiltedDemo 由 iOS 11 SDK + AUv3Host 由 iOS 10 SDK + iOS 11 设备构建 = OK(FiltedDemo 存在) FiltedDemo 由 iOS 10 SDK 构建 + AUv3Host 由 iOS 10 SDK + iOS 11 设备构建 = OK(FiltedDemo 存在) FiltedDemo iOS 11 SDK 构建 + AUv3Host iOS 11 SDK + iOS 10 设备构建 = OK(FiltedDemo 存在) FiltedDemo 由 iOS 10 SDK 构建 + AUv3Host 由 iOS 11 SDK + iOS 10 设备构建 = OK(存在 FiltedDemo) FiltedDemo 由 iOS 11 SDK + AUv3Host 由 iOS 10 SDK + iOS 10 设备构建 = OK(FiltedDemo 存在) FiltedDemo 由 iOS 10 SDK 构建 + AUv3Host 由 iOS 10 SDK + iOS 10 设备构建 = OK(FiltedDemo 存在)

因此,看起来问题只有在两个条件都有效时才会出现:设备安装了 iOS 11,并且主机应用程序是使用 iOS 11 SDK 编译的。 Audio Unit 编译不影响问题。

您对如何解决此问题有任何想法吗?有没有办法解决这个问题,或者这是一个 iOS 11 SDK 错误,只能由 Apple 修复?

【问题讨论】:

【参考方案1】:

问题解决了。我还在 bugreport.apple.com 上将问题作为错误提交,我刚刚从 Apple 团队得到了答复:

工程部门已要求提供有关您的错误的以下信息 报告:请将跨应用音频功能添加到您的 应用。这是一项隐私要求,在 WWDC 演讲。由于 AUv3Host 需要自签名 权利丧失。所有 AUv3 主机都需要应用间音频 有权查看 v3 音频单元。我们将研究如何制作这个 更加明确,并将更新示例以避免这些问题。

这就像一个魅力。 iOS 11 设备现在能够看到所有 16 个音频单元,包括 FiltedDemo

如果这个要求更明显就好了。我希望 Apple 会更新他们的文档和示例项目。

【讨论】:

以上是关于iOS 11 + Xcode 9.0 = 无音频单元的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 9.0 报错,Safe Area Layout Guide Before IOS 9.0

安装 Xcode 9.0 Beta 后 Xcode 8.3.2 中缺少模拟器

Xcode 10 - iOS 9.0 [12] 之前的安全区域布局指南错误

Xcode 7 beta 5 中 iOS 9.0 之前的 UIStackView

iOS 9.0 Xcode 8.3.3 MfiBtPrinterConnection.h streming 蓝牙 maxLength Zebra ZQ520

问题 XCode 8,Swift 2.3 存档版本在 IOS 9.2.1 -> IOS 9.0 上启动时崩溃