author avatar
    Senior Product Manager
 

Summary
Encountering the error "can't be opened because Apple cannot check it for malicious software" can be a common and frustrating experience on a Mac. This issue arises due to Apple's Gatekeeper, a security feature designed to protect your system by verifying that downloaded applications are notarized and safe. While this safeguard is crucial, it can sometimes block legitimate apps. This article delves into the reasons behind this error and offers four effective methods to bypass it, ensuring you can use your favorite applications without compromising your Mac's security.



When you try to open an app on your macOS and receive the message “can’t be opened because Apple cannot check it for malicious software,” it can be frustrating. This error is not a bug but a security feature known as Gatekeeper. Gatekeeper is designed to verify downloaded applications before they are launched, ensuring that only trusted and notarized apps run on your macOS. This article will explain why this error occurs and provide four effective methods to bypass it. Let’s dive in.
Gatekeeper checks if the app is either from the official Mac App Store or if it’s been signed by a registered Apple developer and notarized by Apple. Since this mechanism does not cover a large number of third-party developers’ programs, there may be misjudgments.

Why Does This Error Occur?

Apple’s Gatekeeper is the first line of defense against potentially harmful software. When you download an app from the internet, Gatekeeper checks if the app has been notarized by Apple. If the app is not notarized, you will see the error message. Here are some common examples:
- KDiff3 can’t be opened because Apple cannot check it for malicious software.
- Python can’t be opened because Apple cannot check it for malicious software.
- XAMPP can’t be opened because Apple cannot check it for malicious software.
- Minecraft can’t be opened because Apple cannot check it for malicious software.
Can't Be Opened Because Apple Cannot Check It for Malicious Software
Fortunately, there are several ways to resolve this issue. Let’s explore them one by one.

Way 1: Right-click to Open the App

One of the simplest solutions is to right-click (or Control-click) on the app and select “Open.” This method allows you to bypass the security notification and open the app. Here’s how to do it:
1. Locate the installer package or plugin that you want to open on your macOS.
2. Right-click on it and select “Open.”
3. Ignore the error and click “Open” again.
4. Follow the on-screen instructions to install the app.
This method works well for many users. However, if it doesn’t work for you, try the next solution.

Way 2: Change Settings in Security & Privacy

You can also change the settings in the Security & Privacy preference pane to allow the app to open. Here’s how:
1. Open the Apple menu > System Preferences.
2. Select “Security & Privacy.”
3. In the General tab, click the yellow padlock and enter your password.
4. Click “Allow” next to the message that says the app was blocked from loading.
5. Tap on “OK.”
6. Click “Open Anyway” next to the popup that reads the app was not from an identified developer.
Click "Open Anyway" next to the popup that reads the app was not from an identified developer.
7. Click “Open” when the error shows up.

Way 3: Remove the File's Extended File Attribute

Another way to fix the “can’t be opened because Apple cannot check it for malicious software” error is by removing the com.apple.quarantine attribute. This attribute is added to files downloaded from the internet to alert Gatekeeper. To remove it, follow these steps:
1. Open Terminal: Press Command + Space, type “Terminal,” and hit Enter.
2. Enter the Command: Replace /path/to/file with the actual path to your file.
For example:

bash xattr -d com.apple.quarantine /Users/YourUser/Downloads/app.dmg

Please replace “/Users/YourUser/Downloads/app.dmg” to your app real path.
3. Execute: Press Enter to execute the command. If the file is protected, you might need administrative privileges. In that case, precede the command with sudo and enter your password:

bash sudo xattr -d com.apple.quarantine /path/to/file

Way 4: Allow Apps Downloaded from Anywhere

Note: This operation will allow unverified applications to run. It is only recommended for temporary use. Be sure to execute sudo spctl –master-enable to restore protection after completion.
If none of the above solutions work, you can temporarily disable the security feature and allow apps downloaded from anywhere. Here’s how:
1. Open Terminal: Press Command + Space, type “Terminal,” and hit Enter.

bash sudo spctl –master-disable

2. Input the following command and hit Enter:
Disable Gatekeeper to avoid the Apple cannot check it for malicious software error
3. Type in your password and press Enter.
4. Install and open the app.
5. When you’re ready to enable the security feature again, execute this command in Terminal:

bash sudo spctl –master-enable

Conclusion

The “can’t be opened because Apple cannot check it for malicious software” error is a security measure implemented by Apple to protect your macOS. By following the four methods outlined in this article—right-clicking to open the app, changing settings in Security & Privacy, removing the extended file attribute, and allowing apps downloaded from anywhere—you can bypass this error and use the app you need. Remember to re-enable the security features once you have installed and verified the app to keep your macOS secure.
    `; leftFixedMulu.children[0].children[1].innerHTML = '';let ml = document.querySelector('.ml'); let eles = ml.getElementsByTagName('*'); let arr = []; for(let i=0; i${eles[i].children[1].innerHTML}`; } if(eles[i].tagName == 'LI'){ console.log(eles[i]); let href = JSON.stringify(eles[i].children[0].getAttribute('href').substr(1)); arr.push(href); leftFixedMulu.children[0].children[1].innerHTML += `
  • ${eles[i].innerHTML}
  • `; } }console.log('anchor link:'+arr.toString());leftFixedMulu.children[0].children[1].innerHTML += '
'; mainBox.appendChild(leftFixedMulu);/* * 2. fix flow */ window.onscroll = function(){ let sclTop = document.body.scrollTop || document.documentElement.scrollTop; let mlBox = document.querySelector('.ml'); let offsetTopNum = mlBox.scrollHeight + mlBox.offsetHeight; // console.log(offsetTopNum);let fixedMulu = document.querySelector('.left-fixed-inner'); if(sclTop > offsetTopNum){ fixedMulu.classList.add('cur'); }else{ fixedMulu.classList.remove('cur'); } }