macOS companion app

macOS 權限

macOS 的權限授予很脆弱。TCC 會將權限授予與 App 的程式碼簽章、套件識別碼及磁碟上的路徑建立關聯。如果其中任何一項變更,macOS 便會將該 App 視為新的 App,並可能不再顯示或隱藏提示。

維持權限穩定的要求

  • 相同路徑:從固定位置執行 App(OpenClaw 的位置為 dist/OpenClaw.app)。
  • 相同套件識別碼:OpenClaw 的套件 ID 為 ai.openclaw.mac;變更它會建立新的權限身分。
  • 已簽署的 App:未簽署或使用臨時簽章的建置版本無法保留權限。
  • 一致的簽章:使用真正的 Apple Development 或 Developer ID 憑證,使簽章在重新建置後仍保持穩定。

臨時簽章會在每次建置時產生新的身分。macOS 會忘記先前授予的權限,而且在清除過時的項目之前,提示可能會完全消失。

Node 與命令列介面執行階段的輔助使用權限

建議將輔助使用權限授予 OpenClaw.app、Peekaboo.app,或其他具有自有套件識別碼且已簽署的輔助程式,而不是通用的 node 二進位檔。

macOS TCC 會將輔助使用權限授予其所識別之程序的程式碼身分。如果 Homebrew、nvm、pnpm 或 npm 工作流程導致共用的 node 執行檔取得輔助使用權限,透過同一執行檔啟動的任何 JavaScript 套件都可能繼承 GUI 自動化權限。

請將「系統設定」中的 node 項目視為該 Node 執行階段的廣泛權限,而不是單一 npm 套件的權限。除非你信任透過該 Node 安裝項目啟動的每個指令碼與套件,否則請避免將輔助使用權限授予 node

核准輔助使用權限並不會啟用活動分享。Settings -> Permissions -> Active computer detection 是另一個預設關閉的控制項,用於與你的閘道分享有限範圍的閒置時間。關閉此功能會清除保留的活動資料,但不會撤銷輔助使用權限或中斷節點連線。

如果你不慎將輔助使用權限授予 node,請從 System Settings -> Privacy & Security -> Accessibility 移除該項目。接著,將權限授予應負責 UI 自動化的已簽署 App 或輔助程式。

提示消失時的復原檢查清單

  1. 結束 App。
  2. 在 System Settings -> Privacy & Security 中移除 App 項目。
  3. 從相同路徑重新啟動 App,並再次授予權限。
  4. 如果提示仍未出現,請使用 tccutil 重設 TCC 項目,然後再試一次。
  5. 有些權限只有在完整重新啟動 macOS 後才會再次出現。

重設範例(使用 OpenClaw 的套件 ID:ai.openclaw.mac):

bash
sudo tccutil reset Accessibility ai.openclaw.macsudo tccutil reset ScreenCapture ai.openclaw.macsudo tccutil reset AppleEvents

檔案與檔案夾權限(桌面/文件/下載項目)

macOS 也可能限制終端機或背景程序存取桌面、文件及下載項目。如果讀取檔案或列出目錄時停滯,請將存取權授予實際執行檔案操作的相同程序環境(例如 Terminal/iTerm、由 LaunchAgent 啟動的 App 或 SSH 程序)。

因應方法:若要避免逐一授予檔案夾權限,請將檔案移至 OpenClaw 工作區(~/.openclaw/workspace)。

如果你正在測試權限,請務必使用真正的憑證進行簽署。只有在權限並不重要的快速本機執行情境下,才可接受臨時簽章的建置版本。

相關內容

Was this useful?
On this page

On this page