"App is damaged and can't be opened" on a Mac: the safe fix
When macOS says an app is damaged and should be moved to the Trash, the file is usually intact. Here is why it happens and the safe one-line Terminal fix.
In short
- The damaged dialog means the app failed macOS's signature check: often an unsigned app or an incomplete download, rarely real damage or malware.
- Verify download integrity first with shasum -a 256 to confirm the file matches the developer's published checksum.
- Clear the quarantine flag on that specific app using xattr -dr com.apple.quarantine /Applications/AppName.app.
- Never run spctl --master-disable, which strips Gatekeeper protection from every file on your Mac.
On this page
- Why does macOS say an app is damaged?
- How do you verify if the download is genuinely broken?
- What is the safe command to remove the quarantine flag?
- Why should you never disable Gatekeeper globally?
- What is the difference between “damaged” and “cannot verify”?
- How does this apply to independent open-source players?
- How should you handle downloaded Mac applications?
When macOS refuses to open an app and says it is damaged and should be moved to the Trash, the app’s signature check failed. Either the download is incomplete, or the app is unsigned or was changed after it was signed; it is rarely malware, and often the file is perfectly fine.
If the app comes from a developer you trust, two steps settle it: check the download’s checksum, then, if it matches, clear the quarantine flag on that one app with a single Terminal command, without weakening the rest of your Mac.
Animation
How macOS evaluates a downloaded application
- DownloadBrowser tags file
- Quarantinecom.apple.quarantine
- Gatekeeper checkSignature check
- Open appExecution granted
Why does macOS say an app is damaged?
The dialog box appears because of an interaction between extended filesystem attributes and Apple’s Gatekeeper subsystem. Whenever you download a file through Safari, Google Chrome, or a network utility, macOS attaches an extended file attribute named com.apple.quarantine to the archive or disk image. This attribute records the download timestamp and the originating browser agent.
When you mount the disk image and drag the application into your Applications folder, the quarantine attribute transfers to the bundle. When you double-click the application icon, Gatekeeper inspects the bundle before the kernel allows code execution. Gatekeeper checks whether the application carries a valid cryptographic signature from an identified Apple developer, whether the code was modified after signing, and whether Apple’s automated notary servers approved the binary.
When the signature is missing or no longer matches the app’s contents, Gatekeeper refuses to run it and shows: "[App]" is damaged and can’t be opened. You should move it to the Trash. (When the app is signed but simply not notarized, you get a different message, covered below.)
In older versions of macOS, users could bypass Gatekeeper checks by holding the Control key while clicking the app and selecting Open. Starting in macOS 15 Sequoia and continuing in macOS 26 Tahoe, Apple permanently removed this Control-click bypass according to the macOS Sequoia Release Notes. Quarantined independent software now halts completely unless you approve it manually in System Settings or strip the quarantine tag.
How do you verify if the download is genuinely broken?
Before modifying file attributes, you must confirm that the application is not actually corrupted. Network drops, server timeouts, or interrupted disk image extractions can produce a truncated file that truly cannot execute.
The most reliable way to check file integrity is by calculating its SHA-256 cryptographic hash. A SHA-256 hash is a unique 64-character hexadecimal fingerprint generated from the exact bytes of the file. If even a single byte changed during transmission, the resulting checksum changes entirely.
Reputable open-source projects publish SHA-256 checksums alongside their release archives on their project websites. To calculate the hash on your Mac, open the Terminal application located in /Applications/Utilities/ and use the built-in shasum command:
shasum -a 256 ~/Downloads/AppName.dmg
Replace ~/Downloads/AppName.dmg with the actual path to your downloaded installer file. You can also type shasum -a 256 with a trailing space and drag the file from Finder directly into the Terminal window.
Press Return. Terminal outputs a string of 64 letters and numbers followed by the file path:
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 /Users/username/Downloads/AppName.dmg
Compare this string against the hash published on the developer’s official download page. If the strings match character for character, your download is bit-for-bit identical to the release binary and contains zero corruption. If the strings differ, your download was corrupted or intercepted in transit; delete the file immediately and download it again.
What is the safe command to remove the quarantine flag?
Once you have verified that the file is authentic and intact, you can resolve the error by stripping the com.apple.quarantine extended attribute from the application bundle. This tells macOS that the application does not need to be evaluated as an unvetted internet download.
You do this using the standard macOS xattr command in Terminal. To clear the quarantine attribute from an application in your Applications folder, enter:
xattr -dr com.apple.quarantine /Applications/AppName.app
The options in this command serve specific purposes:
xattr: Calls the macOS extended attribute management utility described in the xattr manual page.-d: Tells the utility to delete the specific attribute name that follows.-r: Operates recursively. macOS application bundles are directories containing nested frameworks, plugins, helper binaries, and resources. The recursive flag removes the quarantine attribute from every file inside the bundle.com.apple.quarantine: Specifies the exact extended attribute to remove./Applications/AppName.app: The target path of the application you wish to open.
You can verify whether an application currently holds the quarantine attribute before removing it by running xattr -l /Applications/AppName.app. If the attribute is present, you will see a line starting with com.apple.quarantine:. After executing the deletion command, running xattr -l again produces no output for quarantine. Double-click the application in Finder, and it launches immediately.
Why should you never disable Gatekeeper globally?
When searching online forums for solutions to the damaged app dialog, you will frequently encounter advice telling you to run the following command:
sudo spctl --master-disable
You should never run this command on your Mac.
The spctl utility controls system policy for Gatekeeper. Executing --master-disable turns off Gatekeeper protection across the entire operating system and re-enables the legacy “Anywhere” radio button in System Settings.
Disabling Gatekeeper globally introduces severe security vulnerabilities:
- Every downloaded file loses automated validation. Your Mac stops checking developer identities and code signatures for any newly downloaded installer, script, or binary.
- Malicious software can execute in the background. If a rogue script or drive-by payload lands in your Downloads folder, macOS no longer blocks it from running.
- System revocation lists are bypassed. If Apple revokes a compromised developer certificate associated with active malware, a Mac with Gatekeeper disabled continues to trust and execute the compromised binary.
- All user accounts are exposed. Because
spctlrequires administrative root permissions (sudo), the protection is stripped from every user account on the computer.
Disabling Gatekeeper system-wide to run a single utility is like taking your front door off its hinges because one key was stiff. Stripping the quarantine attribute from a single verified application using xattr -dr affects only that specific application bundle. The rest of your system remains fully protected by Gatekeeper.
What is the difference between “damaged” and “cannot verify”?
macOS uses two primary alerts for unvetted third-party software, and understanding the distinction helps you pick the right resolution path.
The first says Apple could not verify "[App]" is free of malware (older versions: cannot be opened because Apple cannot check it for malicious software). The app is signed, but the developer hasn’t had it notarized by Apple.
For this alert, you do not need to open Terminal. When macOS blocks the app, open System Settings, navigate to Privacy & Security, scroll down to the Security section, and look for the note stating the app was blocked. Click the “Open Anyway” button, which remains available for approximately one hour after the attempt. Enter your administrator password to launch the app. You can read our complete walkthrough on handling the Apple could not verify prompt.
The second is "[App]" is damaged and can’t be opened: the signature is missing, or it doesn’t match the app’s contents. That is the case for unsigned apps, for apps modified after signing, and for downloads cut short. There is no Open Anyway button for it. Download the app again and compare checksums; if they match and you trust the developer, removing the quarantine attribute with xattr lets it open.
How does this apply to independent open-source players?
Distributing software outside the Mac App Store requires developers to navigate Apple’s notarization pipeline. To obtain a Developer ID certificate and access Apple’s Notary service, developers must maintain an active enrollment in the Apple Developer Program at a cost of $99 USD annually, as documented on Apple’s Developer Program page.
MacLC is an independent open-source project (GPL 2 or later) by Hazen Studio, in public beta for Apple Silicon Macs (M1 or newer) with macOS 26 Tahoe or later. It is free, so it ships as a disk image signed ad hoc, without that yearly fee: donations would pay for it.
Because it isn’t notarized, macOS shows the “could not verify” message the first time you open it.
To ensure your copy of the software is safe and intact:
- Download the disk image directly from the download page.
- Check the SHA-256 hash displayed right on the download page.
- Open Terminal and run
shasum -a 256 ~/Downloads/maclc-1.4.dmg. - Confirm that the calculated hash matches the published string.
- Drag the application into your Applications folder.
- Open MacLC, click Done, then click Open Anyway in System Settings › Privacy & Security (or, from Terminal, run
xattr -dr com.apple.quarantine /Applications/MacLC.app). If macOS says “damaged” instead, go back to step 1.
After that, it opens like any other app. You can compare its native architecture in our guide to the best video player for Mac and learn how hardware decoding saves energy in our breakdown of Mac battery video playback.
How should you handle downloaded Mac applications?
When running software outside the Mac App Store, a few habits protect your system while keeping open-source tools accessible:
- Never download compiled binaries from anonymous file-sharing hubs, mirrors, or repackaging aggregators. Always fetch software from the developer’s official domain or public source repository.
- Verify cryptographic hashes whenever provided. A published SHA-256 string lets you independently prove that the file you received matches the developer’s compiled output.
- Use targeted attribute removal instead of disabling system security. The
xattr -dr com.apple.quarantinecommand removes the internet barrier from a single, trusted utility without opening your system to malware. - Keep Gatekeeper fully active. Leave
spctlin its default state so macOS continues to monitor background processes, revoke compromised certificates, and safeguard your Mac.
Questions people ask
Is the app actually broken when macOS says it is damaged?
Often not. macOS shows this message when a downloaded app's signature is missing or doesn't match its contents. That happens with unsigned apps and with incomplete downloads. Compare the file's SHA-256 checksum with the developer's to know which.
What does xattr -dr com.apple.quarantine do?
The command deletes the quarantine flag that Safari or other browsers attached during download. The -d flag removes the attribute, while -r applies the change recursively to all files inside the application bundle.
Why should I avoid spctl --master-disable?
That command turns off Gatekeeper across your entire Mac. Disabling system-wide verification leaves your computer open to silent background execution of any downloaded script or malware.
Can I use Control-click to open unnotarized apps on modern macOS?
No. Apple removed the Control-click override in macOS Sequoia and macOS Tahoe. You must approve unnotarized apps through System Settings or clear the quarantine attribute in Terminal.