安定した権限の要件
- 同じパス: アプリを固定された場所から実行します(OpenClawの場合は
dist/OpenClaw.app)。 - 同じバンドル識別子: OpenClawのバンドルIDは
ai.openclaw.macです。これを変更すると、新しい権限 ID が作成されます。 - 署名済みアプリ: 未署名またはアドホック署名のビルドでは権限が保持されません。
- 一貫した署名: 実際の Apple Development または Developer ID 証明書を使用し、再ビルド間で署名が安定するようにします。
Node と CLI ランタイムのアクセシビリティ許可
汎用のnode バイナリではなく、OpenClaw.app、Peekaboo.app、または独自のバンドル識別子を持つ別の署名済みヘルパーにアクセシビリティを付与することを推奨します。
macOS TCCは、監視対象のプロセスのコード ID にアクセシビリティを付与します。Homebrew、nvm、pnpm、または npm のワークフローによって共有 node 実行ファイルにアクセシビリティが付与されると、その同じ実行ファイルを通じて起動された任意の JavaScript パッケージが GUI 自動化権限を継承する可能性があります。
システム設定の node エントリは、1つの npm パッケージへの権限ではなく、その Node ランタイムへの広範な権限として扱ってください。その正確な Node インストールを通じて起動されるすべてのスクリプトとパッケージを信頼していない限り、node にアクセシビリティを付与しないでください。
誤って node にアクセシビリティを付与した場合は、システム設定 -> プライバシーとセキュリティ -> アクセシビリティからそのエントリを削除します。その後、UI 自動化を所有すべき署名済みアプリまたはヘルパーに付与してください。
プロンプトが消えた場合の復旧チェックリスト
- アプリを終了します。
- システム設定 -> プライバシーとセキュリティでアプリのエントリを削除します。
- 同じパスからアプリを再起動し、権限を再付与します。
- それでもプロンプトが表示されない場合は、
tccutilで TCC エントリをリセットして再試行します。 - 一部の権限は、macOSを完全に再起動した後でないと再表示されません。
ai.openclaw.mac を使用):
ファイルとフォルダの権限(デスクトップ/書類/ダウンロード)
macOSは、ターミナル/バックグラウンドプロセスに対してデスクトップ、書類、ダウンロードへのアクセスも制限する場合があります。ファイル読み取りやディレクトリ一覧表示が停止する場合は、ファイル操作を実行する同じプロセスコンテキスト(たとえば Terminal/iTerm、LaunchAgentで起動されたアプリ、または SSH プロセス)にアクセス権を付与してください。 回避策: フォルダごとの許可を避けたい場合は、ファイルを OpenClaw ワークスペース(~/.openclaw/workspace)に移動します。
権限をテストしている場合は、必ず実際の証明書で署名してください。アドホックビルドが許容されるのは、権限が重要でない短時間のローカル実行のみです。