Sponsor Link
環境&対象
- macOS Monterery beta 5
- Xcode 13 beta5
システム環境設定 – セキュリティとプライバシー – プライバシー
macOS が管理している情報について、アプリからのアクセスできるかどうかを管理するためのものです。
左側を見ると、macOS として管理している対象がわかります。
アプリによっては、起動時にアクセスを許可してくれるようにダイアログ等で促されることもあります。
アクセスの許可をリクエストされたことがあると、左側でアクセス対象の情報を選択すると、右側に アクセス要求したアプリが列挙されます。
一度でもアクセス要求したアプリがあると、以下のように アクセス要求したアプリが追加されます。
許可の状態は、アプリ左側のチェックボックスでわかります。チェックを外すことで アクセス許可を取り消すこともできます。
このように、macOS レベルで アプリからのアクセスを管理することができるようになっています。
アプリを消したい時
アプリを開発する側になると、適切にアクセス許可のリクエストを行っているかの確認が必要となります。
アクセス許可のリクエストでダイアログが表示されるかどうかは、プライバシーに登録されているかどうかで 異なります。
プライバシーに追加されていないアプリ
プライバシーに登録されていないアプリ内から、アクセス許可をリクエストすると、macOS がダイアログを表示して、ユーザーに 許可を確認します。
ここで、「OK」を押下すると 許可することになり、チェックボックスにチェックが入った状態でアプリが登録されます。
「許可しない」を押下すると 許可しないことになり、チェックボックスにチェックが入らない状態でアプリが登録されます。
プライバシーに登録されているアプリ
プライバシーに登録されていないアプリ内から、アクセス許可をリクエストすると macOS は ダイアログを表示せずに プライバシーに設定されている情報を返します。
ユーザーから見ると期待される動作なのですが、アプリ開発者からすると 一度テストしてしまうと、以降は プライバシー設定情報が取得できるだけで、ダイアログがきちんと表示されるかを確認できません。
きちんとダイアログが表示されるかどうかを確認するには、プライバシーからアプリを削除することが必要となります。
プライバシーからアプリを削除する
GUI では用意されていませんが、コマンドラインで動作するコマンド “tccutil” が用意されています。
% tccutil --help
tccutil: Usage: tccutil reset SERVICE [BUNDLE_ID]
なお、このコマンドを使用して、アクセス許可を追加することはできません。
SERVICE には、以下を指定できます。
- Accessibility
- AddressBook
- AppleEvents
- Calendar
- Camera
- Microphone
- Photos
- Reminders
- ScreenCapture
- SystemPolicyAllFiles
- SystemPolicyDesktopFolder
- SystemPolicyDeveloperFiles
- SystemPolicyDocumentsFolder
- SystemPolicyDownloadsFolder
- SystemPolicyNetworkVolumes
- SystemPolicyRemovableVolumes
- SystemPolicySysAdminFiles
Bundle_ID には、アプリの Bundle Identifier を指定します。
こうすることで、プライバシーに登録されたアプリを削除することができます。
なお、SERVICE/Bundle_ID を省略して All とすることもできるようですが、問題があるようです。(怖いので試してません)
まとめ:セキュリティとプライバシーから 特定の情報へアクセスするアプリを削除する方法
- tccutil を使用して、リセットする
- Category と Bundle_ID を指定することで、特定のカテゴリの特定のアプリを削除できる
iOS の場合は、デバイスからアプリを削除することで削除されます。
説明は以上です。
不明な点やおかしな点ありましたら、こちらまで。
Sponsor Link