macOS 屏蔽更新的方法

9 月 19 日
 leesamsik

我的设备是 M2Pro 的 MBP ,目前系统停在 15.8 不准备再升级了。27 的系统更新提示实在是烦人,最近发现把 Beta 版更新开关打开,然后选择“macOS Sequoia Public Beta 版”就不会有 macOS27 的更新提示了。操作简单且不用更改系统设置,需要的 V 友可以试试

3716 次点击
所在节点    macOS
15 条回复
Superoutman
9 月 19 日
晚上回去试试
hangzhou
9 月 19 日
xi't 系统已经下载好了,不想升级怎么办。问 gpt 说是只能关机或启用 caffeinate -dimsu 命令,不让电脑进入睡眠。现在只要待机就会自动升级系统
leesamsik
9 月 19 日
@hangzhou 系统设置 > 通用 > 储存空间,检查“macOS”或“应用程序”分类下的安装包文件,删除
shintendo
9 月 19 日
但是那个 beta 更新很频繁,也挺烦的
ech2o
9 月 19 日
@hangzhou #2 没下载好啊,大版本安装包只能手动点击升级才下载,不信你去 update 文件夹看看
bokix
9 月 19 日
我之前是让 codex 写了一个 plist ,会屏蔽更新的,应该是这个帖子: https://www.v2ex.com/t/1160516#reply18
yoyoyoyolol
9 月 19 日
AI 时代全是漏洞,不更新有风险。前段时间 iOS18.6 之前的设备有个漏洞,打开一个病毒网页就可以把你本地的 keychain 都偷走了
leesamsik
9 月 19 日
@bokix #6 收藏学习了,回头试试
leesamsik
9 月 19 日
@shintendo #4 所以把 beta 测试选到自己所在的这个版本,更新的频率不高。
leesamsik
9 月 19 日
@yoyoyoyolol #7 事实是这样,如果系统更新既能补漏,又不姑姑带来其他问题的话,没人会成天研究怎么屏蔽更新,大部分人其实都想无脑 OTA
q534
9 月 20 日
我的方法,host 里面写一条:127.0.0.1 gdmf.apple.com ,既可以接受系统组件的更新比如 safari27 ,又不会收到系统本身更新的提示🫡
n2Day
9 月 20 日
ttkanni
9 月 20 日
只加 host 不行,代理开了 TUN 还要在代理里写拦截规则,不然屏蔽会失效。
ErZhou
9 月 20 日
15.3 也可以吗
vovov
9 月 20 日
我写了一个脚本 toggle_apple_hosts.sh ,终端执行 sudo sh toggle_apple_hosts.sh 可自动切换是否更新系统,执行后重启电脑,小红点即可消失:

```bash
#!/bin/bash

# 确保脚本以 root 权限运行
if [ "$EUID" -ne 0 ]; then
echo "权限不足,请使用 sudo 运行此脚本: sudo $0"
exit 1
fi

HOSTS_FILE="/etc/hosts"
# 使用其中一个需要切换的域名作为状态判断基准
CHECK_DOMAIN="swdist.apple.com"

# 检查 hosts 文件中是否已存在这些域名
if ! grep -q "$CHECK_DOMAIN" "$HOSTS_FILE"; then
echo "错误:未在 $HOSTS_FILE 中找到相关域名,请先按照配置更新 hosts 文件。"
exit 1
fi

# 检查当前是否已被注释 (行首以 # 开头并包含该域名)
if grep -q "^#.*$CHECK_DOMAIN" "$HOSTS_FILE"; then
echo "当前状态: [已放行] 系统更新(规则被注释)。"
echo "正在切换为 -> [拦截] 模式 (仅拦截系统更新,保留 App Store)..."

# 仅取消注释特定的 6 个域名(同时生效于 IPv4 和 IPv6 )
sed -i '' -e '/swdist.apple.com/ s/^#*//' \
-e '/swdownload.apple.com/ s/^#*//' \
-e '/swcdn.apple.com/ s/^#*//' \
-e '/gdmf.apple.com/ s/^#*//' \
-e '/xp.apple.com/ s/^#*//' \
-e '/mesu.apple.com/ s/^#*//' "$HOSTS_FILE"
else
echo "当前状态: [已拦截] 系统更新(规则生效中)。"
echo "正在切换为 -> [放行] 模式..."

# 仅为特定的 6 个域名添加注释(同时生效于 IPv4 和 IPv6 )
sed -i '' -e '/swdist.apple.com/ s/^/#/' \
-e '/swdownload.apple.com/ s/^/#/' \
-e '/swcdn.apple.com/ s/^/#/' \
-e '/gdmf.apple.com/ s/^/#/' \
-e '/xp.apple.com/ s/^/#/' \
-e '/mesu.apple.com/ s/^/#/' "$HOSTS_FILE"
fi

# 刷新 DNS 缓存
echo "正在刷新 macOS DNS 缓存..."
dscacheutil -flushcache
killall -HUP mDNSResponder

echo "切换完成!"
```

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1243124

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX