What this article deals with
This article was primarily created to address the issue where an attempt to run the Toast High-def/Blu-ray plugin installer is interrupted by the error message shown above, stating the app cannot be opened, and thus causing the installation to fail.
The error message, however, is not exclusive to the Toast disc burning plugin installer only. In fact, this error message may be encountered when attempting to run or install any macOS app downloaded off the Internet (as opposed to the Apple Store), most often in Zip format, and extracted using a third-party decompression utility, such as StuffIt Expander.
What causes the problem
The problem is caused by the attachment of an extended attribute ("xattr") flag to the file, “com.apple.quarantine”, that was not originally there. Extended attributes are metadata that are stored along with the file, and provide additional information that will determine how the file, or in this case the installer app, is handled by macOS.
Extended attributes do not appear in the “Get Info” window, but can be checked in Terminal by using the command “xattr” at the user prompt.
The image above shows three extended attributes attached to the Toast HD/BD plug-in installer.app after being extracted by Stuffit Expander--extended attributes that do not appear if the built-in Archive Utility.app is used.
How to fix the problem
There are several methods with which you can fix this app launch failure.
Ideally, when you receive the plugin installer in Zip format, you would have extracted the contents (the app file itself) using the built-in macOS "Archive Utility.app" decompression tool. This way, the app is extracted from its zip container as is, and no extended attributes get associated with it. Extraction via the Archive Utility.app happens by default if you do not have any other decompression utilities installed on your Mac that would automatically catch calls to extract zip files.
If there are other decompression utilities installed, prevent them from extracting the zip file by specifically selecting the built-in Archive Utility to do the job. This is done by right-clicking on the file (or two-finger tapping, using the touchpad), clicking "Open with" on the context menu, and selecting "Archive Utility.app".
If for some reason the problem persists even after using the Archive Utility (or maybe the problem came up as a result of using the Archive Utility), there is another way to approach the problem. That is, by using the "xattr" command in Terminal, paired with some switch options.
The "xattr" command can be used with the "-cr" option to strip away all extended attributes from the app. The -c switch stands for "clear", and the -r switch stands for "recursive", since the ".app" file is really a directory that contains resource files; and using the "recursive" option directs the command be applied to everything within that directory. Hence, the "xattr -cr" command instructs Terminal to look for extended attributes and strip them away.
To perform this method, follow these steps:
- Open terminal in Applications\Utilities\Terminal.app
Note: You can also open Terminal from Spotlight, by pressing Command + Spacebar, typing in "Terminal.app", and hitting the Return [Enter] key.
- At the user prompt [your_username$_], type xattr -cr (make sure there is a single space in between), enter another space after the command, and then type in the file location and file name.
Note: An easier way to enter the file path is by dragging the app file itself from its current location and dropping it into the Terminal window. This automatically enters the entire file path at the position of the cursor.
- Hit the Return [Enter] key and wait for the command to complete. You'll know it's completed when the cursor is back to your username prompt.
At this point, the job is done. Try launching the app again, and it should now run as normal.
This method is very similar to the previous one, except that you will be deleting just that single extended attribute, “com.apple.quarantine” that is causing the problem, as opposed to clearing all xattrs, as was done above. This is useful for advanced users who do not want any other xattrs stripped from the file, other than the one causing the problem.
For this method, a different command switch is used: that is, “-dr”, instead of “-cr”. As you may have guessed, the “d” stands for “delete”, and the “r”, as before, stands for “recursive”, since you will also be applying the delete command to the entire directory.
To perform this method, follow the same steps as in Method #2, but at step #2, type "xattr -dr com.apple.quarantine ". Again, pay attention to the spaces - leave one after "com.apple.quarantine". Then drag and drop the app file into the Terminal window to automatically enter its exact location. See the screenshot below
After hitting the Return key the cursor will return to the username prompt, and the target xattr will have been deleted.
So at this point, the job is done again. Close the Terminal and Finder windows and try launching the installer app file again. It should now execute the installer wizard interface and walk you through the installation.