oynix

于无声处听惊雷,于无色处见繁花

MacOS 上禁止应用自动更新

为什么会有这个需求呢?起因就是微信,旧版本有更新时,会弹个弹窗,询问要不要更新,拒绝掉就可以保持版本。但新版本变坏了,设置里有个禁止自动更新的开关,即便是关掉,当有新版本时,它还是会自动后台下载,在某次不经意间的重启后,它就自动替换旧版本,完成了更新,不给你选择的机会。

发现这个现象后,我就开始关注这些应用的更新操作,发现Arc浏览器也是如出一辙,自动更新这个开关形同虚设,在这些应用看来,就算天塌了,我该更新也要更新。

但是大多新版本对我而言,都没什么吸引力,无非是增加了一些功能,优化了一些使用体验,也可能呢移除了一些我正在使用的功能。如果我真的需要,我会手动更新的,这个应用装到了我的设备上,那就该我说了算。

一番查证,发现了 2 个思路可以禁止自动更新的操作:

1. 思路1

自动更新前,它会先把新的安装包,一般都是个app结尾的文件提前下载到缓存目录,路径如下:

1
/Users/用户名/Library/Caches/应用包名/

只要将这个目录的写权限禁止掉,那么就无法下载了,继而无法安装。

1
chmod -R 500 /Users/用户名/Library/Caches/应用包名/

在修改权限后,Arc 浏览器会提示我升级失败,遇到问题,说明奏效了,因为它无法下载。但是微信却没有任何提示,本就是后台偷偷摸摸在做,出了错不提示也正常。

但这种方式有个特点,重启之后,Cache目录会清空,应用启动后,会重建对应的应用包名的目录,然后权限就重置了,如果需要的话,还需重新设置一下权限。

2. 思路2

每个应用对应的app文件,本质就是个文件夹,可以右击选择查看包内容。升级时,是将新的app文件,直接替换旧的,这个方式是给app文件改标记,增加不可以修改,这样就无法替换了,比如,禁止微信更新:

1
sudo chflags -R uchg /Applications/WeChat.app

这个操作比chmod的权限更高一些,执行前需要彻底关闭应用,同时还需要给执行命令的终端窗口开启完全磁盘访问的权限,不然可能无法访问到app内的文件,导致修改失败。

执行完之后,可以查看是否成功,如果输出结果中有uchg标记,表示成功,同时,当再次打开app后,会发现dock中的应用图标左下角多了一个锁的小图标。

1
2
ls -lO /Applications/WeChat.app
drwxr-xr-x 10 xxxx admin uchg 320 5 18 21:20 Contents

如果想接触这个标记,可以通过下面的命令,验证方式同上。

1
sudo chflags -R nouchg /Applications/WeChat.app
------------- (完) -------------
  • 本文作者: oynix
  • 本文链接: https://oynix.com/2026/05/aeabe90473f3/
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

欢迎关注我的其它发布渠道