macOS 无法原生按版本号黑白名单控制升级,但可通过 softwareupdate --ignore 锁定特定版本(如 macOS Sequoia),再锁定 com.apple.SoftwareUpdate.plist 文件为只读,并修改 /etc/hosts 屏蔽苹果更新域名,最后关闭 App Store 自动下载 macOS 更新,实现全面屏蔽。

macOS 本身不支持“禁止某个特定软件版本升级”,比如只拦住 macOS Sequoia 而放行 Ventura 补丁。它没有按版本号做白名单/黑名单的原生机制。但你可以通过配置文件锁定 + 版本忽略 + 网络拦截三者配合,实现对某次大版本升级(如 Sequoia、Tahoe)的实质性屏蔽。
用 softwareupdate --ignore 锁定特定 macOS 版本
这是最直接、最轻量的方式,适用于已看到目标版本出现在更新列表中但尚未下载的情况。
- 打开终端,执行:sudo softwareupdate --ignore "macOS Sequoia"(把 Sequoia 换成你要屏蔽的具体名称,例如 macOS Tahoe 或 macOS 15.4)
- 命令成功后不会提示,但下次进入“软件更新”界面,该版本将不再显示为可选更新
- 注意:此操作仅作用于当前用户偏好,若系统重置或 MDM 推送覆盖,需重新执行
- 如需查看已被忽略的列表,运行:softwareupdate --list --ignored
锁定 com.apple.SoftwareUpdate.plist 防止 ignore 被清空
单纯 --ignore 容易被图形界面开关、系统升级或管理策略重置。加一层只读锁,能让 ignore 设置真正“固化”。
让 macOS 自动化像说话一样简单 —— 用代码控制你的 Mac,无需学习 AppleScript 系统要求 macOS 14+ (Sonoma) Python 3.9+ 需要开启:辅助功能 + 屏幕录制权限
- 终端中依次执行以下三行命令(输完一行按回车):
sudo touch /Library/Preferences/com.apple.SoftwareUpdate.plist
sudo chown root:wheel /Library/Preferences/com.apple.SoftwareUpdate.plist
sudo chmod 444 /Library/Preferences/com.apple.SoftwareUpdate.plist - 完成后,系统尝试写入任何更新配置(包括取消 ignore、开启自动检查等)都会静默失败
- 图形界面里的“自动保持 Mac 最新”开关仍可点击,但实际无效——这是锁定生效的明确信号
配合 hosts 屏蔽,堵死后台唤醒与弹窗残留
即使 ignore + 锁定都做了,极少数情况下系统仍可能发起连接、触发红点或横幅提醒(尤其在重启后或 Spotlight 检测时)。此时需在网络层补刀。
- 用终端编辑 hosts 文件:sudo nano /etc/hosts
- 在文件末尾新增以下三行(每行一个域名,不可合并):
127.0.0.1 swscan.apple.com
127.0.0.1 swdist.apple.com
127.0.0.1 swcdn.apple.com - 按 Ctrl+O → 回车 → Ctrl+X 保存退出
- 该操作让系统无法解析苹果更新服务器地址,所有版本检测请求均超时,彻底杜绝弹窗和 Dock 红点再生
补充:针对 App Store 单独下载的安装器
App Store 有时会悄悄下载 “macOS Sequoia Installer” 这类独立安装包,它不受 --ignore 控制。需额外关闭其自动下载通道:
- 打开 App Store → 菜单栏 App Store → 设置…
- 取消勾选:自动下载 macOS 更新(该选项在 macOS Sonoma 及以上版本中明确存在)
- 如界面无此选项,终端执行:defaults write com.apple.appstore AutoUpdate -bool false,然后重启 App Store










