macOSパーミッション(TCC)

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 ai.openclaw.mac
sudo tccutil reset ScreenCapture ai.openclaw.mac
sudo tccutil reset AppleEvents

ファイルとフォルダのパーミッション(デスクトップ/書類/ダウンロード)

macOSはターミナルやバックグラウンドプロセスに対して、デスクトップ、書類、ダウンロードフォルダへのアクセスを制限することがあります。ファイル読み取りやディレクトリ一覧がハングする場合は、ファイル操作を実行しているのと同じプロセスコンテキスト(Terminal/iTerm、LaunchAgent起動のアプリ、SSHプロセスなど)にアクセス権を付与してください。

回避策:フォルダごとの付与を避けたい場合は、ファイルをOpenClawワークスペース(~/.openclaw/workspace)に移動してください。

パーミッションのテスト時は必ず実際の証明書で署名してください。アドホックビルドはパーミッションが関係ない簡単なローカル実行にのみ使用してください。