1. セキュリティ警告の例と原因
macOS で Flutter の開発をするときに、次のような警告メッセージが表示される場合があります。
警告メッセージ: "idevicesyslog" cannot be opened because the developer cannot be verified. macOS cannot verify that this app is free from malware. (参考訳: 開発者を確認できないので、"idevicesyslog" は開けませんでした。macOS はこのアプリケーションがマルウェアではないことを確認できません。)
警告メッセージ: "iproxy" cannot be opened because the developer cannot be verified. macOS cannot verify that this app is free from malware. (参考訳: 開発者を確認できないので、"idevicesyslog" は開けませんでした。macOS はこのアプリケーションがマルウェアではないことを確認できません。)
警告メッセージ: "idevice_id" cannot be opened because the developer cannot be verified. macOS cannot verify that this app is free from malware. (参考訳: 開発者を確認できないので、"idevice_id" は開けませんでした。macOS はこのアプリケーションがマルウェアではないことを確認できません。)
なぜ、このような警告が表示されるのでしょうか。
macOS Catalina (10.15) ではアプリケーションのセキュリティチェックが以前より厳しくなりました。 この変更によって Apple 開発者 ID で署名されていないアプリケーションを起動しようとすると、こうした警告メッセージが表示されるようになったのです。
2. セキュリティの警告への対処方法
セキュリティとプライバシーの設定から、署名のないプログラムの実行を許可することができます。SDK のインストールの説明「Flutter SDK のインストール (macOS)」で説明したことと同じです。
例えば、次のような警告メッセージが表示されたとします。
idevice_id を例にとりますが idevicesyslog や iproxy でも同様です。
ここで
(キャンセル) をクリックします。そして直ちにセキュリティとプライバシーの管理画面を開きます。ここにプログラムの実行の許可を行うためのボタンが表示されているはずです。
をクリックします。
すると、次回に表示されるセキュリティの警告画面には、プログラムの実行を許可する Open ボタンが表示されます。
ボタンをクリックすることで、プログラムの実行が許可されます。
3. セキュリティの警告への対処方法 (非推奨の方法)
上記の idevicesyslog や iproxy は、 それぞれ Flutter SDK のインストールディレクトリ以下の次のフォルダにあります。
- flutter/bin/cache/artifacts/libimobiledevice
- flutter/bin/cache/artifacts/usbmuxd
ターミナルから、xattr コマンドを利用して、 com.apple.quarantine 拡張属性を削除することで、セキュリティメッセージを抑制することができます。
% cd ~/development/flutter/bin/cache/artifacts/libimobiledevice % sudo xattr -d com.apple.quarantine idevicesyslog % cd ~/development/flutter/bin/cache/artifacts/usbmuxd % sudo xattr -d com.apple.quarantine iproxy
この回避方法を行う人も少なくないようなので、一応紹介しましたが、基本的にはセキュリティとプライバシーの設定画面を用いるのが正当なやり方だと思います。
以上、ここではセキュリティの警告が表示された時の対処方法について説明しました。