The five places Mac apps update from
- Mac App Store. Apps installed from the App Store update through the App Store app and your Apple Account. This is the most managed path: Apple reviews and signs every build.
- Homebrew. Developer tools and many GUI apps installed as Homebrew formulae or casks update from the command line with
brew upgrade. - Sparkle and other in-app updaters. Many third-party Mac apps ship their own updater (commonly the open-source Sparkle framework) that checks a feed and replaces the app in place.
- Vendor updaters. Large vendors run dedicated tools: Microsoft AutoUpdate, Google Software Update, Adobe Remote Update Manager, Docker Desktop, and others.
- Direct downloads. Some apps are only updated by downloading a new DMG or ZIP from the vendor and dragging it into your Applications folder.
How updates actually reach your Mac
How much verification happens automatically—and how much falls to you—depends on each channel's mechanics.
Mac App Store
The App Store compares installed apps against Apple's servers, downloads Apple-signed builds, and swaps them in place—every build passed App Review, so you never handle the file yourself (Homebrew vs Mac App Store updates compares the channels).
- Open the App Store and choose Updates in the sidebar.
- Click Update next to an app, or Update All.
Homebrew casks and formulae
Homebrew pins a download URL and SHA-256 checksum in each package definition—casks for GUI apps, formulae for command-line tools. Upgrades verify the download against that checksum before replacing the installed copy; self-updating apps are marked auto_updates (full mechanics in the Homebrew cask update guide).
brew outdated --casklists casks with newer versions.brew outdated --cask --greedyincludes self-updating apps.brew upgrade --cask <token>upgrades one app.
Sparkle in-app updaters
A Sparkle app carries an SUFeedURL key in its Info.plist pointing at an appcast: an XML feed listing each release's version, download URL, signature, and minimum system version. Sparkle verifies each download's EdDSA signature against a public key inside the installed app; Sparkle 2 installs through a sandboxed XPC service.
- See which feed an app uses:
defaults read /Applications/App.app/Contents/Info SUFeedURL - Legacy Sparkle 1 DSA feeds deserve more caution than Sparkle 2's EdDSA (ed25519) signatures.
Vendor updaters
Large vendors run background agents that poll their servers and install signed builds on their own schedule:
- Microsoft AutoUpdate (Office, Edge, Teams)
- Google Software Update (Chrome)
- Adobe Remote Update Manager
- Docker Desktop's built-in updater
Letting the vendor's own tool perform these updates is usually safest; the update sources taxonomy maps each of these channels.
Direct downloads
You download a DMG or ZIP from the vendor and drag the new bundle over the old one. macOS quarantines the download; Gatekeeper checks Developer ID signing and notarization on first launch. Everything else is on you.
- Verify the published checksum:
shasum -a 256 App.dmg - Confirm signing and notarization:
spctl -a -vv /Applications/App.app - Keep a copy of the current version first (back up a Mac app before updating).
Why there is no single “Update All” button
macOS only manages updates for apps that came from the Mac App Store. Everything else carries its own update logic, on its own schedule, checking its own server. That is why keeping a Mac current usually means opening the App Store for some apps, running Homebrew for others, and launching individual apps to let their built-in updaters run, while a few apps quietly fall behind because their updater only runs when the app is open.
The scattered approach is not just tedious. It also makes it hard to answer the one question that matters before any update: is this update actually safe to install? If you want one pass instead of five, see how to update all Mac apps at once.
A safe update workflow: find, judge, protect
Whatever tool you use, a trustworthy update routine comes down to three steps.
- Find. Build one list of every installed app, its source, and whether a newer version exists. You cannot review what you cannot see.
- Judge. For each available update, decide whether it is safe to install now, worth a closer look, or better handed off to the vendor's own updater.
- Protect. For updates that replace an app in place, back up the current version first so a bad release can be rolled back.
How to tell an update is trustworthy
Before you let anything replace software in your Applications folder, check a few things:
- Source. The update metadata should be delivered over HTTPS, never cleartext, and should come from the developer's own channel.
- Identity. The replacement should have the same bundle identifier and the same signing team as the app you already have installed, so a lookalike cannot slip in.
- Direction. The new version should be newer than the installed one. A served “update” that is actually older can be a downgrade attack.
- Signature. Sparkle updates should be verified against the installed app's public key, and direct releases should be Developer ID signed and Apple-notarized.
App Store and notarized updates already get much of this checking from macOS. Direct downloads and third-party updaters are where most of the risk lives, and where these checks matter most.
What a safe update looks like
Before anything replaces an installed app, run this one-minute checklist:
- Source. HTTPS, from the developer's own channel—not a mirror, popup, or email link.
- Signature. Developer ID signed and notarized for direct downloads, EdDSA-verified for Sparkle, checksum-matched for Homebrew.
- Identity. Same bundle identifier and signing team as the installed app.
- Version direction. Strictly newer than what is installed.
- Backup. For in-place replacements, a copy of the current version exists for rollback.
Fail any one and the update deserves a pause, not a click.
When not to auto-update
Automatic updates are the right default. Hold back when:
- Mid-project. One-way project file formats (audio plugins, video editors) can migrate your work irreversibly.
- Major version jumps. Licensing, plugin compatibility, or system requirements can change—read the release notes.
- Day-one releases. Waiting a day or two lets the vendor catch a bad build.
- Unexpected channels. A website popup or email link offering an “update” is a phishing pattern.
Where macCurrent fits
macCurrent brings the five update sources above into one reviewable list, labels what is safe to install versus what needs review, verifies downloads before they replace anything, and can back up eligible apps before a direct replacement. It is a free beta delivered as one universal app for Apple silicon and Intel Macs on macOS 15 or later. Read the security model for exactly what it verifies, or download the beta.
Frequently asked questions
Why doesn't macOS have one button to update every app?
macOS only manages updates for apps installed from the Mac App Store. Apps from Homebrew, vendor updaters, and direct downloads each carry their own update mechanism, so no single system button can update all of them.
How do I know if a Mac app update is safe to install?
Confirm the update comes from the same developer as the installed app, that it is delivered over HTTPS, that the new version is newer than the installed one, and that the bundle identity and signing team match. See is it safe to auto-update Mac apps? for the details.
Should I back up an app before updating it?
For App Store and most vendor-managed updates it is rarely necessary. For direct-download updates that replace the app bundle, a backup lets you roll back. See how to back up a Mac app before updating.
Do Homebrew updates verify what they install?
Partially. Homebrew verifies each download against the SHA-256 checksum in its cask or formula definition, and Gatekeeper still checks signature and notarization on first launch. It does not confirm the signing team matches the installed app.
What is a downgrade attack?
A downgrade attack serves an older, vulnerable version of an app disguised as an update so an attacker can exploit already-fixed bugs. Checking that the offered version is strictly newer than the installed one defeats it.
When should I delay an app update?
Delay when you are mid-project, when a major version change may alter file formats or licensing, or when the build is only a day or two old. Install a little later rather than skipping entirely.
Related guides
- How to update all Mac apps at once
- Is it safe to auto-update Mac apps?
- How to back up a Mac app before updating
- Homebrew vs Mac App Store updates compared
- Homebrew cask updates for Mac apps
- Sparkle app updater on Mac: feeds and signatures
- Mac app update tracker with safety and history
- Mac app update sources: the 5 channels explained
- Mac app update fragmentation report
- Best Mac app updater for mixed app sources