BlackHole 音频驱动构建与签名分发全解析

BlackHole 音频驱动构建与签名分发全解析 BlackHole 音频驱动构建与签名分发全解析【免费下载链接】BlackHoleBlackHole is a modern macOS audio loopback driver that allows applications to pass audio to other applications with zero additional latency.项目地址: https://gitcode.com/gh_mirrors/bl/BlackHoleBlackHole 是一个专为 macOS 打造的虚拟音频驱动让任意应用把声音零延迟地透传给另一个应用。这个项目还有一层看点编译、代码签名、公证、PKG 打包被串成了一条完整的 macOS 驱动构建流水线。读下来你会明白它是怎么被造出来、签好名再经 Homebrew 送到你桌面的。一分钟上手一条命令装好 BlackHole 音频驱动最短路径不需要手动下载也不需要改任何系统设置确认系统是 macOS 10.10 以上先关掉正在运行的音频应用。在终端执行brew install --cask blackhole-2chHomebrew 会自动下载已签名、已公证的安装包并完成安装。打开音频 MIDI 设置左侧设备列表里看到 BlackHole 2ch 即表示驱动就位。把发送端应用的输出、接收端应用的输入都选成 BlackHole音频就开始互传 日后升级只需brew upgrade --cask blackhole-2ch一条命令。你该选哪个版本Homebrew 上常见三档版本安装命令适合场景2chbrew install --cask blackhole-2ch日常录音、会议软件互传多数人首选16chbrew install --cask blackhole-16ch多轨道录音、DAW 多轨工作流64chbrew install --cask blackhole-64ch专业音频制作、复杂路由它是怎么跑起来的macOS 驱动核心原理先说它解决的问题macOS 上的应用默认各说各话A 应用放的音乐B 应用根本听不到。BlackHole 相当于在系统里装了一副虚拟音箱加虚拟麦克风A 应用把声音输出到 BlackHoleB 应用再从 BlackHole 输入声音就传过去了。数据走的是系统音频栈内部的环形缓冲所以几乎没有额外延迟。实现上它很克制驱动本体 BlackHole/BlackHole.c 是单个 C 文件基于 CoreAudio 的 AudioServerPlugIn 接口输入流写入环形缓冲、输出流读出。它不是内核扩展装进 /Library/Audio/Plug-Ins/HAL 后由 CoreAudio 自动加载Intel 与 Apple Silicon 通用。通道版本则是一鱼多吃同一份源码在编译期注入不同参数生成 2、16、64、128、256 通道共五个驱动每个都有独立的 Bundle ID 和 UUID因此能同时装在一台 Mac 上互不冲突。安装完成后驱动会以音频设备的形式出现在系统里大致是这样关键配置与签名流程代码签名公证实操这部分写给想自己跑构建脚本的人。全部逻辑集中在 Installer/create_installer.sh安装前后的系统动作放在 Installer/Scripts/ 里的脚本中。签名参数怎么配驱动属于系统级组件签名比普通 App 更严格。核心命令是codesign几个关键参数参数作用为什么需要--force强制覆盖旧签名保证每次构建都是新签名--deep递归签名内部组件驱动 bundle 内含可执行体等子项--options runtime启用强化运行时Catalina 起的安全硬性要求--sign 团队ID指定签名身份系统据此验证发布者少掉--options runtime会怎样没有强化运行时公证会直接失败用户机器上的 Gatekeeper 也会拦下这个驱动。多通道版本怎么互不冲突macOS 靠 Bundle ID 和 Info.plist 里的插件工厂 UUID 区分不同驱动。脚本每构建一个通道版本就用uuidgen生成新 UUID 替换模板中的旧值再配上独立的 Bundle ID形如 audio.existential.BlackHole16ch。两套标识各管一面2ch 和 16ch 自然能和平共处。公证卡住了怎么办公证分两步把 PKG 提交给 Apple 扫描再把返回的票据钉回包上。xcrun notarytool submit BlackHole2ch.pkg --wait --keychain-profile notarize xcrun stapler staple BlackHole2ch.pkg若输出出现 status: Invalid用xcrun notarytool log加提交 ID 拉取日志常见原因是签名证书与团队 ID 不匹配或打包时脚本文件权限不对。接入 Homebrew 与 CI 分发生态整合指南对使用者意味着什么你平时感受到的只有一条命令brew install --cask blackhole-2ch。背后 Cask 帮你做完了四件事从官方源下载对应通道的 PKG、校验签名、把驱动放进系统音频插件目录、升级时以新代旧。相比手动下载 PKG版本始终可控装与卸都有据可查 CI 怎么跑完全流程仓库里的构建脚本本身就是一条完整流水线对五个通道版本循环执行xcodebuild 按 Release 编译 → 生成唯一 UUID → codesign 签名 → pkgbuild 打组件包 → productbuild 合成带向导界面的 PKG → notarytool 公证并装订。版本号统一从 VERSION 文件读取保证五个包版本一致。装完不确定是否生效执行ls /Library/Audio/Plug-Ins/HAL/看到 BlackHole2ch.driver 这类目录就说明驱动已经就位。常见问题速查安装、公证与架构问题Q双击 PKG 报错装不上某些 macOS 版本在特定目录解析安装包会失败。把 .pkg 从下载挪到桌面或反过来再打开试试。Q装好了却找不到 BlackHole它不是普通应用不会出现在应用程序文件夹里。打开音频 MIDI 设置看设备列表若没有执行sudo killall coreaudiod重启音频服务。Q公证报 status: Invalid用xcrun notarytool log加提交 ID 看 Apple 返回的日志多半是签名证书与团队 ID 不一致或脚本权限不对。QIntel 和 Apple Silicon 要装不同的包吗不需要。安装包声明同时支持 x86_64 与 arm64两种芯片装同一个包即可。Q怎么升级到新版本Homebrew 用户执行brew upgrade --cask blackhole-2ch手动安装的用户下载新 PKG 覆盖安装装完重启更稳妥。回到开头那三样东西——虚拟音频驱动、代码签名公证、Homebrew 分发BlackHole 用一条脚本把三者串成了可重复的生产线。它证明了一个小而美的 macOS 驱动也能拥有企业级的交付能力。下一步不妨打开仓库的构建脚本把五个通道的安装包亲手做一遍。【免费下载链接】BlackHoleBlackHole is a modern macOS audio loopback driver that allows applications to pass audio to other applications with zero additional latency.项目地址: https://gitcode.com/gh_mirrors/bl/BlackHole创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考