메인 콘텐츠로 건너뛰기

macOS 권한 (TCC)

macOS 권한 허가는 취약합니다. TCC는 앱의 코드 서명, 번들 식별자, 디스크상의 경로와 권한 허가를 연결합니다. 이 중 하나라도 변경되면 macOS는 앱을 새롭게 취급하며 요청을 삭제하거나 숨길 수 있습니다.

안정적인 권한의 요구 사항

  • 동일한 경로: 고정된 위치에서 앱 실행 (OpenClaw의 경우, dist/OpenClaw.app).
  • 동일한 번들 식별자: 번들 ID를 변경하면 새 권한 식별자가 생성됩니다.
  • 서명된 앱: 서명되지 않거나 임시 서명을 한 빌드는 권한을 유지하지 않습니다.
  • 일관된 서명: 실제 Apple Development 또는 Developer 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

파일 및 폴더 권한 (데스크탑/문서/다운로드)

macOS는 또한 터미널/백그라운드 프로세스에 대해 데스크탑, 문서, 다운로드 접근을 제한할 수 있습니다. 파일 읽기나 디렉토리 목록이 멈추는 경우, 파일 작업을 수행하는 동일한 프로세스 컨텍스트(예: Terminal/iTerm, LaunchAgent가 시작한 앱, 또는 SSH 프로세스)에 접근을 허가하십시오. 문제 해결 방법: 폴더별 허가를 피하려면 파일을 OpenClaw 작업 공간(~/.openclaw/workspace)으로 이동하십시오. 권한을 테스트할 때는 항상 실제 인증서로 서명하십시오. 임시 빌드는 권한이 중요하지 않은 짧은 로컬 실행에서만 허용됩니다.