How to fix 'The application "..." can't be opened' on Mac?

In my case nothing helped until I accidently opened context menu on .zip file. Open With -> there were

1) Archive Utility (default) which always broke my app when unzipped

2) The Unarchiver, unzipped with this and application started

OS 10.14


This happens because the application doesn't have execution permissions.

To make the application executable:

  1. Open a terminal window (CMD + Space -> terminal);
  2. Using the cd command, navigate to the place where the application is stored: cd <path_to_application>
  3. Run chmod +x <application_file> to make it executable. If it doesn't let you, sudo it:
    sudo chmod +x <application>.

The command from point 3 should look similar to this (thanks to @CJK):

chmod +x "/Applications/ShadowBat.app/Contents/MacOS/ShadowBat"

@Fanatique is right, but be advised -

There are many possible causes for this problem, and most cannot be fixed using chmod. Handling program bundles with inappropriate tools often will "damage" executable bundles.

  • Making zip or tar archives with inappropriate settings will strip many file attributes;
  • copying via different file systems - e.g. a FAT32 formatted USB stick - might ruin file names (capitalization, special characters);
  • finally, copying applications between computers with the correct tools might result in invalid "receipt" files (sometimes commercial apps are cryptographically locked to certain hardware ids that way - the receipt will not be valid on the destination machine).

You shouldn't use chmod unless you have a good understanding of both file modes and ACLs, and more important, of what exactly the problem is, so you can fix it... this innocuous tool is well capable of recursively ruining your whole filesystem (and may even keep your system from booting).

If in doubt, I'd recommend deleting and reinstalling the pertaining app.


The following command typically solves most issues:

chmod +x "/Applications/ShadowBat.app/Contents/MacOS/ShadowBat"

but if it doesn't, there may be another application file within the application that you need to run the same command for. For example, right click the application and click "Show Package Contents" then look for a folder called "Versions".

There may be another application within this folder that you can follow the same process for the command above to make the application executable.