I found it impossible to disable update notifications for apps - notifcation centre does not provide App Store option, disabling "automatically check for updates" only disables checking for OSX updates. Is there something I'm missing or is there a way to solve it in the terminal?
See https://lapcatsoftware.com/articles/mas-notifications.html for a solution to this
defaults write com.apple.appstored LastUpdateNotification -date "2029-12-12 12:00:00 +0000"
You can use any future date of course :-)
In December 2020 there’s no graphical switch or Apple Store account setting to disable these. I’ve not seen a command line solution, but there is always hope someone discovers one.
The easy way to disable many of these now is to sign out of the App Store app. The notifications are coming from the store and not something the app generates locally. Since they are tied to your purchase history, removing that from the Mac suppresses the account notifications.
I also want to link to this ingenious use of setting a future update time. Super useful if you really don’t want to know any app updates are available.
This doesn't bug me so much that I would try it but in AppStore-s Info.plist there is key-value pair:
Based solely on key name it may or may not be notification setting. Changing it may or may not change notification behavior and/or break the system.
I found 2 ways:
I didn't tested this but probably it's possible to find the process which is running update and connecting to the apple services and disable it's internet access with some firewall like LULU. But since Apple (with each update) is trying to hide that service behind new names/logic it's much easier to use the second way. They disabled option to disable annoying popups = we disable them disabling it.
I'm using an old approach - it's about just using /etc/hosts file to block all DNS records related to Apple's update services. To do this you need to know which records to block.
To find that out use terminal command:
sudo tcpdump port 53
Then open settings/update to see DNS requests appears in the terminal. All you need to do is to copy/paste all suspicious DNS records to hosts file adding 127.0.0.0 before that DNS record.
sudo nano /etc/hosts
In my case it was enough adding these records at the end of the hosts file:
127.0.0.0 swscan.apple.com 127.0.0.0 gdmf.apple.com 127.0.0.0 gdmf.v.aaplimg.com 127.0.0.0 swscan-cdn.apple.com.akadns.net 127.0.0.0 ocsp2.apple.com 127.0.0.0 ocsp2-lb.apple.com.akadns.net 127.0.0.0 xp.apple.com.edgekey.net 127.0.0.0 configuration.apple.com.akadns.net 127.0.0.0 swdist.apple.com.akadns.net
After that done update service fails to check for updates and rude notifications shall not pass.
In some cases you can just escalate the thing and block whatever services Apple is trying to connect like this:
127.0.0.0 apple.com 127.0.0.0 akadns.net 127.0.0.0 edgekey.net 127.0.0.0 aaplimg.com