使用 MacBook 时,突然弹出“你有一条系统更新”的通知,尤其是在剪辑视频、参加会议或调试代码的关键时刻,这种干扰令人烦躁。别担心,仅仅关闭横幅通知是不够的——需要同步禁用显示逻辑、后台唤醒机制以及让人心烦的红点提示源头。

立即关闭当前正在弹出的更新通知
这一步只处理当前显示内容,并非根本解决方案,但能让你迅速回归工作状态。
点击通知右上角的【×】按钮直接关闭;如果弹窗已锁屏无法点击,按下 【Command + Shift + A】 打开聚焦搜索,输入“通知中心”,回车进入后向左滑动清除所有未读通知——这将强制清空当前队列,包括那个正在闪烁的系统更新横幅。
关闭图形界面中所有自动更新开关
这是后续所有操作生效的基础,遗漏任何一项都可能让弹窗在几小时后再次出现。
第一步:点击屏幕左上角苹果菜单 () → “系统设置”。
第二步:左侧边栏选择“通用” → 右侧点击“软件更新”。
第三步:点击“自动更新”右侧的 ⓘ 图标,进入子页面。
第四步:取消勾选【自动保持我的 Mac 最新】——这是总开关,不关闭它,下方所有选项均无效。
第五步:点击“高级…”按钮,在弹出的窗口中【务必全部取消勾选】:自动检查更新、下载新更新、安装 macOS 更新、安装 App Store 应用更新、安装安全响应和系统文件——遗漏任何一项,Dock 可能第二天就会出现红点。
使用终端命令停用后台唤醒并清除视觉红点
即使所有界面设置均已关闭,macOS 仍可能在凌晨某个时刻自动启动 softwareupdated 进程检查更新,并在 Dock 和系统设置图标上生成红点。这一步直接杀死它的定时检测行为。
方法一:一键禁用调度并清除红点
打开“启动台”→“其他”→“终端”。
输入命令:sudo softwareupdate --schedule off,回车后输入管理员密码(无光标反馈是正常现象)。
紧接着执行:defaults write com.apple.systempreferences AttentionPrefBundleIDs 0 && killall Dock——这行命令必须一次性完整输入再回车,【缺少任何符号或空格都会导致失败】,它会立刻移除 Dock 和系统设置图标右上角的红色数字。
修改 hosts 文件屏蔽更新服务器域名
当横幅、红点、弹窗反复出现,说明系统仍在尝试联网请求。此时需要从 DNS 层面彻底封锁通路,让 macOS 无法解析 Apple 的更新地址。
在终端中输入:sudo nano /etc/hosts,回车后输入管理员密码进入编辑模式。
使用方向键将光标移动到文件末尾,另起一行,逐个添加以下六行(实测有效,包含 swscan.apple.com、mesu.apple.com 等核心域名):
127.0.0.1 swscan.apple.com
127.0.0.1 mesu.apple.com
127.0.0.1 swdist.apple.com
127.0.0.1 swcdn.apple.com
127.0.0.1 appldnld.apple.com
127.0.0.1 osxapps.itunes.apple.com
按 Control+O 保存,回车确认,再按 Control+X 退出。
