在Mac上用Shairport Sync实现后台纯AirPlay音频接收需安装并配置为launchd系统服务:先用Homebrew安装,再复制plist到/Library/LaunchDaemons/、修正权限、加载并启动服务;自定义设备名需修改/usr/local/etc/shairport-sync.conf并重载服务;macOS 13+需在隐私设置中允许shairport-sync访问麦克风以保障音频输出。

在Mac上用Shairport Sync接收iPhone或iPad的AirPlay音频流,实现后台纯音频接收(不弹窗、不抢焦点、不干扰当前任务),需要绕过macOS原生AirPlay接收限制并手动配置服务。
安装Shairport Sync
打开终端,运行以下命令安装最新版Shairport Sync(依赖Homebrew):
brew install shairport-sync
若未安装Homebrew,先执行:/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"。安装过程约2–3分钟,期间不要关闭终端窗口。
配置Shairport Sync为系统级后台服务
Shairport Sync默认以用户模式运行,会随终端关闭而终止;要真正后台常驻,必须启用launchd服务。
第一步:生成系统级配置文件
sudo cp /opt/homebrew/opt/shairport-sync/homebrew.mxcl.shairport-sync.plist /Library/LaunchDaemons/
第二步:修改plist权限与归属
sudo chown root:wheel /Library/LaunchDaemons/homebrew.mxcl.shairport-sync.plist && sudo chmod 644 /Library/LaunchDaemons/homebrew.mxcl.shairport-sync.plist
第三步:启用服务并立即启动
sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.shairport-sync.plist → sudo launchctl start homebrew.mxcl.shairport-sync
【必须执行sudo launchctl start】 否则服务仅注册未运行,AirPlay设备列表里不会出现你的Mac。
自定义音频输出与名称
方法一:通过配置文件修改(推荐长期使用)
编辑配置文件:sudo nano /usr/local/etc/shairport-sync.conf,找到general区块,修改name字段为你想要显示的设备名(如“书房Mac”),保存后执行sudo launchctl stop homebrew.mxcl.shairport-sync && sudo launchctl start homebrew.mxcl.shairport-sync重载服务。
方法二:临时覆盖名称(调试用)
直接启动时加参数:shairport-sync -a "临时名字" --output_backend=pipe,但该方式无法后台常驻,仅用于验证音频通路是否正常。
注意:macOS 13+系统中,若使用内置扬声器,需在“系统设置→隐私与安全性→麦克风”中允许shairport-sync访问麦克风(这是系统误判,实际用于音频输入路由,不开启会导致无声)。
验证AirPlay接收状态
在iPhone控制中心长按音量模块→点击右上角AirPlay图标,下拉列表中应出现你配置的设备名(如“书房Mac”)。
点击后,iPhone屏幕顶部会出现AirPlay状态条,Mac无任何弹窗或界面变化,音频即刻从Mac扬声器或选定输出设备播出。
此时可在终端运行ps aux | grep shairport确认进程存在且用户为root;若看到shairport-sync --daemon字样,说明已正确以后台守护进程运行。


















