How to implement and publish virtual audio driver to Apple App Store?

At 3:38-4:00 in the session video, it seems Baek San Chang says that AudioDriverKit will not be allowed to be used for virtual audio devices

Video: https://developer.apple.com/videos/play/wwdc2021/10190/

Here is what he says:

Keep in mind that the sample code presented is purely for demonstrative purposes and creates a virtual audio driver that is not associated with a hardware device, and so entitlements will not be granted for that kind of use case.

For virtual audio driver, where device is all that is needed, the audio server plugin driver model should continue to be used.

The mentioning of sample code is a little confusing; Does he mean the entitlements for hardware access won't be granted for a virtual device? That would seem obvious.

But if he means the entitlements for driver kit extensions (com.apple.developer.driverkit and com.apple.developer.driverkit.allow-any-userclient-access) won't be granted for virtual audio devices, and this is why AudioServerPlugins should still be used, then that's another story.

Are we allowed to use AudioDriverKit Extension for Virtual Devices?

The benefit of having the extension bundled with the app rather than requiring an installer is a significant reason to use an extension if allowed.

I need to create a virtual audio driver that presents a virtual microphone and a virtual speaker to the user. The user can then select these virtual endpoints in 3rd party audio communication apps like Skype, Zoom etc. The virtual audio driver implementation then routes audio between physical devices (selected by the user in the virtual driver userspace control app) and the virtual devices.

It is a requirement that the virtual audio driver and its control app can be published to the Apple app store for users to download and install on their machine without any problems.

How should I go about this?

Replies

I recommend you open a support incident with Developer Technical Support (that is, follow the code-level support link on your Developer Account page), so that you can discuss your specific scenario with an engineer.

Generally, if you are not interfacing to hardware of your own, AudioServerPlugin is your only choice, but an ASP cannot itself output to any real audio devices.