iOS 11 + Xcode 9.0 = 无音频单元

iOS 11 + Xcode 9.0 = No Audio Units

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

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

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

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

所以,看起来只有当两个条件都有效时才会出现问题:设备安装了 iOS 11,并且主机应用程序是使用 iOS 11 SDK 编译的。音频单元编译不影响问题。

您知道如何解决这个问题吗?有没有办法解决这个问题,或者这是一个 iOS 11 SDK 错误,只能由 Apple 解决?

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

Engineering has requested the following information regarding your bug report: Please add the Inter-App Audio Capability to your application. This is a privacy requirement and was mentioned during the WWDC talk. Since the AUv3Host requires self-signing the entitlement is lost. All AUv3 hosts require the Inter-App Audio entitlement to see v3 audio units. We will look into how to make this even more explicit and will update the sample to avoid these issues.

这很有魅力。 iOS 11 个设备现在可以看到所有 16 个音频单元,包括 FiltedDemo

如果这个要求再明显一点就好了。我希望苹果能更新他们的文档和示例项目。