如何实现虚拟音频驱动并发布至Apple App Store?AudioDriverKit能否用于虚拟设备?
关于AudioDriverKit用于虚拟音频设备开发及App Store发布的问题解答
核心权限问题澄清
苹果WWDC2021的表述不存在歧义,明确说明:
请注意,本次展示的示例代码仅作演示用途,其创建的虚拟音频驱动未关联任何硬件设备,此类用例将无法获得对应的entitlement授权。对于仅需设备功能的虚拟音频驱动,应当继续使用audio server plugin驱动模型。
这里指的就是com.apple.developer.driverkit等AudioDriverKit必需的系统权限,不会下放给无真实硬件关联的虚拟音频设备类应用,你无法通过苹果的开发者权限申请,也不可能把基于AudioDriverKit的虚拟驱动打包上App Store,这条路径完全走不通。
可行的实现方案
你需求里的虚拟麦克风/扬声器、跨应用识别、音频路由、App Store发布的要求,完全可以通过苹果官方推荐的*Audio Server Plugin(HAL插件)*方案实现,具体流程如下:
- 按照Core Audio HAL插件规范开发虚拟音频驱动bundle,实现虚拟I/O端点声明、音频数据读写、路由控制等核心逻辑
- 将编译好的插件bundle放在主应用的资源目录中,随主应用一同打包
- 主应用首次启动时,在用户权限下将插件bundle拷贝到
~/Library/Audio/Plug-Ins/HAL/路径下,该路径为用户级音频插件目录,无需root权限即可写入 - 拷贝完成后执行
killall coreaudiod命令重启系统音频服务,重启后系统会自动加载你的虚拟音频设备,所有第三方应用包括Zoom、Skype都可以正常识别和选择这些虚拟端点 - 音频路由逻辑可以在插件内部实现,也可以通过进程间通信把音频数据抛到主应用层处理,满足你在用户态控制应用中切换物理设备路由的需求
上线注意事项
- 插件需要同时适配Intel和Apple Silicon架构,完成苹果公证和正确签名,避免被Gatekeeper拦截
- 该方案完全符合App Store审核规则,已有大量同类虚拟音频应用采用该方案成功上线,用户下载安装后无需额外操作即可正常使用
- 若需要兼容10.15以下的旧版本macOS,需要额外适配不同版本的HAL接口差异,避免兼容性问题
内容的提问来源于stack exchange,提问作者user1884325
相关产品推荐
相关产品推荐

