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