macOS 권한 (TCC)
macOS 권한 부여는 취약합니다. TCC는 앱의 코드 서명, 번들 식별자, 디스크 경로와 권한 부여를 연결합니다. 이 중 하나가 변경되면 macOS는 앱을 새것으로 취급하고 프롬프트를 삭제하거나 숨길 수 있습니다.
안정적인 권한을 위한 요구 사항
- 동일한 경로: 고정된 위치에서 앱을 실행합니다 (OpenClaw의 경우
dist/OpenClaw.app). - 동일한 번들 식별자: 번들 ID를 변경하면 새 권한 ID가 생성됩니다.
- 서명된 앱: 서명되지 않았거나 애드혹 서명된 빌드는 권한을 영구적으로 유지하지 않습니다.
- 일관된 서명: 서명이 재빌드 간에 안정적으로 유지되도록 실제 Apple Development 또는 Developer ID 인증서를 사용하십시오.
애드혹 서명은 빌드마다 새로운 ID를 생성합니다. macOS는 이전 부여를 잊어버리고 오래된 항목이 지워질 때까지 프롬프트가 완전히 사라질 수 있습니다.
프롬프트가 사라질 때 복구 체크리스트
- 앱을 종료합니다.
- 시스템 설정 -> 개인 정보 보호 및 보안에서 앱 항목을 제거합니다.
- 동일한 경로에서 앱을 다시 시작하고 권한을 다시 부여합니다.
- 프롬프트가 여전히 표시되지 않으면
tccutil로 TCC 항목을 재설정하고 다시 시도합니다. - 일부 권한은 macOS를 완전히 재시작한 후에만 다시 나타납니다.
재설정 예시 (필요에 따라 번들 ID 교체):
bash
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)으로 이동하십시오.
권한을 테스트하는 경우 항상 실제 인증서로 서명하십시오. 애드혹 빌드는 권한이 중요하지 않은 빠른 로컬 실행에만 허용됩니다.