macOS Permissions
macOS permission persistence (TCC) and signing requirements
macOS 権限の付与は脆弱です。TCC は権限の付与を
アプリのコード署名、バンドル識別子、およびディスク上のパスに関連付けます。それらのいずれかが変更されると、
macOS はアプリを新しいものとして扱い、プロンプトをドロップまたは非表示にする可能性があります。
安定した権限の要件
- 同じパス:固定された場所からアプリを実行します(OpenClaw の場合、''dist/OpenClaw.app'')。
- 同じバンドル識別子:バンドル ID を変更すると、新しい権限 ID が作成されます。
- 署名されたアプリ:未署名またはアドホック署名されたビルドは権限を永続化しません。
- 一貫した署名:実際の Apple Development または Developer ID 証明書を使用します
再ビルド間で署名が安定するようにします。
アドホック署名はビルドごとに新しい ID を生成します。macOS は以前の
付与を忘れ、古いエントリがクリアされるまでプロンプトが完全に消える可能性があります。
プロンプトが消えた場合の回復チェックリスト
1. アプリを終了します。
2. システム設定 → プライバシーとセキュリティでアプリのエントリを削除します。
3. 同じパスからアプリを再起動し、権限を再付与します。
4. プロンプトがまだ表示されない場合は、''tccutil'' で TCC エントリをリセットして再試行します。
5. 一部の権限は、macOS を完全に再起動した後にのみ再表示されます。
リセットの例(必要に応じてバンドル ID を置き換えます):
sudo tccutil reset Accessibility bot.molt.mac sudo tccutil reset ScreenCapture bot.molt.mac sudo tccutil reset AppleEvents
権限をテストしている場合は、常に実際の証明書で署名してください。アドホック
ビルドは、権限が重要ではない迅速なローカル実行にのみ適しています。