The problem
You download a binary or application, go to run it and Mac won't let you. There are (arguably) good reasons for this, but that's out of the scope of this article, but you'll find more information about Mac's Gatekeeper on the internet :).
You'll see something like this:
Error message while trying to run binary:
“your-binary” cannot be opened because the developer cannot be verified.
macOS cannot verify that this app is free from malware.
Chrome downloaded this file today at 9:00 fromexample.com
Explanation
So, how does Mac knows that a binary is not to be checked/trusted?
When you download a file, the browser sets the extended attributes that Mac will check before allowing you to run the binary/app.
Show extended attributes
$ xattr your-binarycom.apple.metadata:kMDItemWhereFromscom.apple.quarantine
Show extended attributes' data
Here's an example
# if you downloaded it using Chrome$ xattr -l your-binarycom.apple.metadata:kMDItemWhereFroms: ...com.apple.quarantine: 0181;62324d50;Chrome;37400A13-128E-4ABA-97ED-D61093874F54# if you downloaded it using Firefox$ xattr -l your-binarycom.apple.metadata:kMDItemWhereFroms: ...com.apple.quarantine: 0181;62324b24;Firefox;99E8F9C8-78F9-4CD4-8E08-9D1D6791B22B
You can see that there's also acom.apple.metadata:kMDItemWhereFroms
attrbiute, it has binary data (mostly text, though). It contains the url where you downloaded the binary from. This information is used to show the error message to the user.
Remove quarentine attribute
Removing the quarentine flag should be enough to allow you to run your binary.
$ xattr -d com.apple.quarantine your-binary
Remove all extended attributes
If you want to get rid of all the data, you can use:
$ xattr -c your-binary
An app instead of a binary?
If you have an app, which is really a directory (e.g.YourApp.app
) you may want to apply these changes to every file on that folder. You can do that using the-r
argument forxattr
. For example:
$ xattr -dr com.apple.quarantine YourApp.app
Alternative
Depending on your use case it may be easier to just usecurl
orwget
(on the command line) to download the file.
At the time of writing this, those tools are not "compliant" with Mac and don't set any extended attribute, so you can just download and run without Mac's Gatekeeper complaining.
I'm not sure if "compliant" is proper word for apps setting these extended attributes, though.
Top comments(0)
For further actions, you may consider blocking this person and/orreporting abuse