author avatar
  サポートマネージャー  

概要
Macで「Appleによって悪意のあるソフトウェアかどうかを確認できないため、開くことができません」というエラーに遭遇することはよくあることで、イライラする場合もあります。この問題は、ダウンロードしたアプリケーションが確認済みで安全であることを保証するために設計されたAppleのセキュリティ機能「Gatekeeper」によって発生します。この安全策は重要ですが、時には正当なアプリもブロックしてしまうことがあります。この記事では、このエラーの原因を掘り下げ、その回避方法を4つ紹介し、お気に入りのアプリをMacのセキュリティを損なうことなく使用できるようにします。



macOSでアプリを開こうとして 「悪意のあるソフトウェアがないか確認できないため開けません」 というメッセージが表示されることがあります。これはバグではなく、Gatekeeper というセキュリティ機能です。 Gatekeeper はダウンロードしたアプリを起動する前に検証し、信頼できる公証済みのアプリのみを実行します。このエラーが発生する理由と、それを回避するための4つの効果的な方法を紹介します。
Gatekeeper は、アプリが公式 macOS App Store からのものであるか、登録されたApple開発者によって署名され、Appleによって公証されているかを確認します。この仕組みでは、多くの サードパーティ開発者 のプログラムがカバーされないため、誤判断が生じる可能性があります。

このエラーはなぜ発生するのでしょうか?

AppleのGatekeeperは、潜在的に有害なソフトウェアに対する最前線の防御線です。インターネットからアプリをダウンロードすると、GatekeeperはアプリがAppleによって認証されているかどうかを確認します。認証されていない場合は、エラーメッセージが表示されます。よくある例を以下に示します。
- KDiff3は、Appleが 安全性を確認できないソフトウェア のため開けません。
- Pythonは悪意のあるソフトウェアがないか Appleが確認できないため、開くことができません。
- XAMPP は、Appleが 悪意のあるソフトウェア かどうかを確認できないため、開けません。
- Appleが 悪意のあるソフトウェア を確認できないため、Minecraftを開けません。
アップルが悪意のあるソフトウェアかどうかをチェックできないため、開けられない
幸いなことに、この問題を解決する方法はいくつかあります。それらを 一つずつ見ていきましょう

方法1: 右クリックしてアプリを開く

最も簡単な解決法のひとつは、アプリを右クリック(またはControlキーを押しながらクリック)し、「開く 」を選択することです。この方法で、セキュリティ通知を回避してアプリを開くことができます。やり方は以下の通り:
1. macOSで開きたいインストーラーパッケージやプラグインを 見つけます
2. その上で右クリックし、「開く 」を選択する。
3. エラーを無視して、もう一度「開く」をクリックする。
4. 画面の指示に従ってアプリをインストールします。
この方法は多くのユーザーに効果的です。しかし、うまくいかない場合は 次の解決策 を試してください。

方法2:セキュリティとプライバシーの設定を変更する

また、「セキュリティとプライバシー」環境設定ペインの設定を変更して、アプリを開くことを許可することもできます。その方法は以下の通りです:
1. Appleメニュー>システム環境設定を開きます。
2. 「セキュリティとプライバシー “を選択します。
3. 「一般」タブ で黄色の錠前をクリックし、パスワードを入力してください。
4. アプリの読み込みがブロックされた というメッセージの横にある「許可」をクリックします。
5. 「OK “をタップする。
6. 「このアプリは未確認の開発者からのものです」と表示されたポップアップの横にある 「とにかく開く」 をクリックしてください。
アプリが特定された開発者のものではないというポップアップの横にある「とにかく開く」をクリックします。
7. エラーが表示されたら「開く」をクリックする。

方法3:ファイルの拡張ファイル属性を削除する

「Apple が悪意のあるソフトウェアかどうか確認できないため、開けません」というエラーを修正するもう一つの方法は、 com.apple.quarantine 属性を削除することです。この属性は、インターネットからダウンロードしたファイルに追加され、Gatekeeper に警告を発します。削除するには、以下の手順に従ってください。
1. ターミナルを開く: Command + Spaceを押し、「Terminal」と入力してEnterを押す。
2. コマンドを入力: /path/to/file実際のファイルパス に置き換えてください。
例えば、こうだ:

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

/Users/YourUser/Downloads/app.dmg を実際のアプリのパスに置き換えてください。
3. 実行: Enter キーを押してコマンドを実行します。ファイルが保護されている場合は、管理者権限が必要になる場合があります。その場合は、コマンドの前に sudo を付け、パスワードを入力してください。

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

方法4:どこからでもダウンロードしたアプリを許可する

この操作は 未確認のアプリケーションを実行 できるようにします。一時的な使用のみ推奨されます。完了後は必ずsudo spctl --master-enableを実行して 保護を復元 してください。
上記の解決策がどれもうまくいかない場合は、一時的にセキュリティ機能を無効にして、どこからでもダウンロードしたアプリを許可することができます。方法は以下の通り:
1. ターミナルを開く: Command + Space を押し、「Terminal」と入力して Enter を押します。

bash sudo spctl –master-disable

2. 次のコマンドを入力し、Enter キーを押します。
Gatekeeperを無効にして、Appleが悪意のあるソフトウェアかどうかをチェックできないというエラーを回避する。
3. パスワードを入力して Enter を押します。
4. アプリをインストールして開きます。
5. セキュリティ機能を再び有効にする準備ができたら、ターミナルで次のコマンドを実行する:

bash sudo spctl –master-enable

結論

Appleが導入した「Appleが悪意のあるソフトウェアをチェックできないため開けません」というエラーは、macOSを保護するための重要なセキュリティ対策です。このエラーを回避して必要なアプリを利用するには、以下の4つの方法があります:
  1. 右クリックしてアプリを開く
  2. 「セキュリティとプライバシー」の設定を変更する
  3. 拡張ファイル属性を削除する
  4. すべてのアプリのダウンロードを許可する

アプリをインストールした後は、macOSのセキュリティを維持するために、セキュリティ機能を必ず再度有効にしてください。

    `; 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'); } }