Mac无法识别Xbox手柄是因原生缺乏HID驱动支持,需通过USB直连(兼容性最高)或蓝牙(macOS 12.3+)连接,并安装360Controller驱动;安装后须在“隐私与安全性”中授权系统扩展,再用jstest-gtk校准输入。

Mac连接手柄玩游戏时,系统常无法识别Xbox系列手柄,导致按键无响应、摇杆失灵或震动功能缺失,直接连上USB或蓝牙后打开Steam或原神却完全没反应——这不是手柄坏了,而是macOS原生驱动层缺失关键支持。
确认手柄类型与连接方式
先别急着插线或配对。打开“关于本机”→“系统报告”→“USB”或“蓝牙”,看设备是否出现在列表里。如果完全不显示,说明系统底层尚未加载对应HID描述符;如果显示为“Unknown Device”或“Xbox Controller”但无输入事件,则属于驱动映射失败。Xbox 360有线手柄、Xbox One(2015年后)USB手柄、Xbox Series X|S蓝牙手柄三类最常用,其中USB连接兼容性最高,蓝牙需macOS 12.3+且手柄固件更新至最新。
⚠️ 注意:Xbox 360无线接收器在macOS 13及以上版本基本不可用,强行使用会导致USB端口异常占用,建议直接换有线或改用蓝牙模式。
安装360Controller驱动(推荐Xbox 360/One有线用户)
方法一:终端一键安装(适用于 macOS 12–14)
打开终端,逐行执行:
git clone https://gitcode.com/gh_mirrors/36/360Controller && cd 360Controller
bash Install360Controller/Scripts/install.sh
该脚本会自动检测系统版本、签名内核扩展、复制驱动文件到/Library/Extensions,并启用kext权限。安装过程约40秒,无需手动编辑plist或禁用SIP。
方法二:图形化安装(适合不熟悉终端的用户)
下载编译好的Release包(如360Controller-4.2.1.pkg),双击运行→输入密码→按提示完成。安装后不要立即重启,先去“系统设置”→“隐私与安全性”→滚动到底部,点击“允许”按钮授权已阻止的系统软件。这一步漏掉会导致驱动加载失败,手柄仍无反应。
配置Xbox Series X|S手柄蓝牙连接
第一步:手柄进入配对模式 —— 长按上方Xbox按钮3秒开机,再同时按住Xbox按钮+蓝牙键(小灯快速闪烁)
第二步:Mac开启蓝牙并搜索 —— “系统设置”→“蓝牙”→点击“添加设备”,在列表中选择“Xbox Wireless Controller”,点击连接
第三步:验证输入能力 —— 打开“自动操作”→新建快速操作→添加“获取鼠标位置”动作,然后晃动右摇杆,看坐标是否实时变化。若不变,说明蓝牙协议栈未正确解析摇杆轴数据,此时必须回退到USB连接或安装xbox-one-controller驱动。
【必须关闭Handoff功能】 否则手柄可能被误判为iPhone遥控器,导致A/B键映射错乱成返回/主页。
测试与校准手柄输入
安装驱动并重启后,打开终端运行:
sudo ls /dev/input/by-path/ | grep xbox
若看到类似“platform-xpad-usb-0000:00:14.0-usb-0:2:1.0-event-joystick”路径,说明内核已识别设备。接着运行:
jstest-gtk
若未安装,先执行 brew install jstest-gtk。启动后选择对应设备,晃动摇杆、按压扳机、点击摇杆,所有轴和按钮应实时高亮响应。左摇杆Y轴反向?这是常见固件bug,需在Pref360Control偏好面板中勾选“Invert Y Axis for Left Stick”。
Steam用户请额外进入“设置”→“控制器”→“通用控制器设置”,勾选“启用Steam输入”,否则《空洞骑士》等游戏仍会读取原始HID数据导致延迟。
多手柄同步连接处理
① 第一个手柄用USB直连,驱动自动加载xpad.kext
② 第二个手柄改用蓝牙配对,但必须在配对前断开第一个手柄的USB线,否则系统会将两个设备识别为同一实例,造成按钮冲突
③ 配对成功后重新插回第一个手柄,此时运行jstest-gtk应能分别看到/dev/input/js0和/dev/input/js1两个独立节点
④ 在游戏内设置中为每个手柄单独指定玩家编号,避免《Overcooked! 2》里两人共用一个角色走位。

















